Хм, что-то как-то усложняете, по моему.
По посту вольтера - очень редко когда, нужно хранить пост и гет значения пользователя в логах. Это какой-то уж совсем детальный лог. :huh:
По фентези игрушкам, а как я понял, автор занимается разработкой именно игры, лучше делать отдельные таблицы под разные виды действий. Это взгляд в будущее, представьте, что у вас одна база логов, в которой неимоверное количество столбцов и строк,
(а строк там будет до апупенения просто) и модераторы
(а влюбой игре должны быть модераторы/хранители/админы как не назови) будут дергать эту МЕГО базу что б посмотреть логи боев перса, потом логи сделок потом логи продажи вещей в магазин и логи обмена на рынке :blink: . Молчу про логи полученых вещей в луте, опыта, травм и прочих атрибутов игр. Это абсурдно - хранить все в одном месте.
1. Логи должны быть разделены. Пишите класс или функцию (в зависимости от подхода) которая на вход получает параметры логирования и полные данные, а потом распихивает по нужным таблицам.
2. Таблицы актуальных логов
(которые часто дергают и шерстят модеры) держать надо в ограниченном виде, напримерЖ за три месяца логи хранить. Далее сливать все в суровые многометровые таблицы-хранилища, откуда при редкой надобности поднимаются старые логи пользователей...
Могу добавить, что слова не на голых домыслах основаны, непосредственно участвую в разработке браузерной игры, так что пишу из личного опыта.
UP: По ситуации со статами, что мешает сделать такой подход:
1. Таблица логирования статов:
user_id, condition, stats_array. где
user_id - всем понятно)
condition - ид 1..8 - варианты ситуации,
stats_array = строка вида 1:2:12:3:21:23:....:72
(*)
2. функция преобразования строки
(*) в массив вида:
Код:
Array (
"poison" => 1,
"troll_power" => 2,
"facepalm_skil" => 12,
....
"pickup_master" => 72
)
Получите три столбика, шустрые запросы и быструю работу...
=)