Я понимаю, что этот вопрос является общим, но я думаю, что люди с большим опытом в отслеживании событий будут иметь хорошее понимание.
У меня есть веб-сайт, на котором я хочу отслеживать загрузки файлов пользователем. На ум приходят два метода:
1) Создайте модель с именем AssetDownload и заполните ее данными.
2) Создайте модель под названием «Событие» или «Активность» и сделайте ее общей моделью для отслеживания событий.
Вижу следующие плюсы и минусы:
Метод 1:
- Pro - Лучшая читаемость, потому что
Модель представляет собой событие точно
- Pro - не нужно будет проводить рефакторинг
в отдельные события, если события становятся
слишком разные
- Pro - не нужно будет искать событие
таблица на дополнительный параметр все
время («тип события»)
- Con - Потенциально много таблиц
- Con - Может быть, не очень сухой, хотя
они могли наследовать от генерала
Модель событий, которая не связана
с таблицей, или я мог бы реализовать
"действует как отслеживаемый" камень
Метод 2:
- Pro - только один стол для всего
- Pro - СУХОЙ по умолчанию
- Con - Стол потенциально станет
очень широкий с колонками, которые только
полезно для небольшого подмножества событий
- Con - Может потребоваться рефакторинг
конкретные события в будущем
Я испытываю желание перейти к методу 1, потому что это своего рода минимально жизнеспособный процесс мышления продукта. Просто сделайте то, что мне нужно, я в итоге добавлю 5 моделей, по 1 для каждого типа событий. Если я добавлю 20 моделей, я смогу провести рефакторинг, используя схему наследования одной таблицы. Но, по крайней мере, в этот момент я буду знать, что я делаю рефакторингом, в то время как разработка будущего требует некоторых догадок.
Однако сейчас я успешно использую метод 2 на другом веб-сайте. Просто хочу посмотреть, что делают другие люди.
Обновление
Я хочу упомянуть, что к событиям, которые я регистрирую, нужно будет обращаться довольно часто. Я буду предоставлять панель инструментов, где пользователи смогут просматривать загрузки файлов по пользователям и по дате. Учтите это, если ваш ответ предполагает использование модели журнала аудита