нужна помощь с протоколированием всех действий на сайте, а также с изменениями базы данных.
Требования:
- должен находиться в базе данных
- должен быть легко доступен для поиска инициатором (имя пользователя/идентификатор сеанса), событие (тип активности) и параметры события
Я могу думать о дизайне базы данных, но либо он включает в себя множество таблиц (по одному на событие), поэтому я могу регистрировать каждый из параметров события в отдельном поле ИЛИ он включает одну таблицу с общими полями (7 int numeric и 7 текстовых типов) и записывать все в одну таблицу с полем типа события, определяющим, какой параметр был написан, где (и надеемся, что мне не нужно больше 7 полей определенного типа, или 8 или 9 или любой другой номер, который я выбираю)...
пример записей (обычные вещи):
[username] login failed @datetime
[username] login successful @datetime
[username] changed password @datetime, estimated security of password [low/ok/high/perfect] @datetime
[username] clicked result [result number] [result id] after searching for [search string] and got [number of results] @datetime
[username] clicked result [result number] [result id] after searching for [search string] and got [number of results] @datetime
[username] changed profile name from [old name] to [new name] @datetime
[username] verified name with [credit card type] credit card @datetime
datbase table [table name] purged of old entries @datetime via automated process
и т.д...
так кто-нибудь имел дело с этим до? любые лучшие практики/ ссылки, которые вы можете использовать?
Я видел это с общим решением, упомянутым выше, но почему-то это противоречит тому, что я узнал из дизайна базы данных, но поскольку вы можете видеть огромное количество событий, которые необходимо отслеживать (каждый пользователь сможет см. эту информацию) дает мне головные боли, НО Я ЛЮБЛЮ одно событие для решения таблицы больше, чем общий.
любые мысли?
edit: также есть ли, возможно, авторитетный список таких (вероятных) событий?
Thnx
переполнение стека говорит: вопрос, который вы задаете, кажется субъективным и, вероятно, будет закрыт.
мой ответ: возможно, субъективен, но он напрямую связан с моей проблемой, связанной с созданием базы данных/написанием моего кода, поэтому я бы приветствовал любую помощь. также я попытался сузить идеи до 2, так что, надеюсь, один из них будет преобладать, если уже не существует установленного решения для такого рода вещей.