В настоящее время у меня есть три таблицы для отслеживания изменений в указанных c записях, но мне кажется, что я заканчиваю с кучей записей, и я не уверен, что это наилучший из возможных способов.
Моя первая таблица содержит основную c информацию, а вторая и третья - дополнительные записи, которые я собираю каждые 8 часов.
ID | creation_date | removal_date | article_url | status
, которые в основном являются наиболее стабильными записями. Состояние и дата удаления - единственные, которые изменятся в случае, если мы отключим / удалим запись.
Пример:
ID | creation_date | removal_date | article_url | status
---|------------------|------------------|-------------|-------
1 | 10/01/2020 20:00 | NULL | http://xxx | 1
2 | 23/01/2020 10:00 | 27/01/2020 13:00 | http://xxx2 | 2
3 | 10/02/2020 15:00 | NULL | http://xxx3 | 1
Status 1 = Active
Status 2 = Inactive
Вторая таблица содержит все остальное: ID | main_id | last_update | title | description | views | rating | comments
Вторая таблица создает новую запись каждые 8 часов, если что-то меняется. Затем, основываясь на добавленных здесь записях, я показываю средние изменения просмотров / рейтинга / комментариев на ежедневной / еженедельной / ежемесячной основе.
Пример:
ID | main_id | last_update | title | description | views | rating | comments
---|---------|------------------|----------------|--------------------|-------|--------|---------
1 | 1 | 10/01/2020 20:00 | First Article | Description.. | 1 | 1 | 0
2 | 2 | 23/01/2020 10:00 | Second Article | Desc.. | 1 | 1 | 0
3 | 1 | 11/01/2020 20:00 | First Article | Description update | 15 | 3 | 2
4 | 1 | 12/01/2020 20:00 | 1st Article | Description update | 30 | 5 | 4
5 | 3 | 10/02/2020 15:00 | 3rd Article | Descript! | 3 | 1 | 1
В третьей таблице содержатся теги: ID | main_id | tag_id | date_added | date_removed
Я подумал, что вместо того, чтобы иметь статус, добавить пустой date_removed, поэтому в случае обновления / удаления тегов / et c обновите эту часть. Теги сохраняются в отдельной таблице и просто получают идентификатор и сохраняют здесь связь между ними.
Пример:
ID | main_id | tag_id | date_added | date_removed
---|---------|--------|------------------|------------------
1 | 1 | 2 | 10/01/2020 20:00 | NULL
2 | 1 | 3 | 15/01/2020 16:30 | 17/01/2020 13:00
3 | 2 | 3 | 23/01/2020 10:00 | NULL
4 | 3 | 5 | 10/02/2020 15:00 | NULL
5 | 1 | 5 | 11/02/2020 17:00 | NULL
Я просто хотел бы знать, есть ли лучший / более правильный способ хранения вышеуказанных данных.