Я пытаюсь выяснить, как лучше хранить информацию о ревизиях / истории для ревизий в нескольких строках данных, на случай, если по какой-то причине нам нужно вернуться к этим данным.
Это общий вид макета:
item
---------------
id
title
etc...
region
---------------
id
title
etc...
release_type
-----------------
id
title
etc...
items_released_dates_data
---------------------
item_id
region_id
release_type_id (these three form the primary key)
date
Таким образом, вы можете иметь одну дату выпуска для каждого элемента + region_id + release_type, и мы в основном отслеживаем только дату (Для целей этого вопроса«date» может быть числом, строкой и т. д. Я обязательно столкнусь с этой проблемой снова)
Изменения представляются в большом количестве, когда новые данные добавляются все в items_released_dates_data, где item_id = your_idсначала удаляется, а затем оператор вставки добавляет новые значения (возможно, это не лучший способ сделать это?)
Я думал создать такую таблицу:
items_release_dates_data_history
-------------------------------------
item_id
timestamp
description
raw_data
Созданиеописание - краткое резюме того, что было обновлено, и включая данные в некотором формате, таком как json или xml или что-то, что может быть быстро декодировано на стороне клиента, чтобы дать пользователю обзор изменений и выбор, чтобы пересмотреть к данной версии.Тогда каждая запись в items_released_dates_data также требует записи в items_released_dates_data_history (не похоже на вопрос, не так ли ?: |)
Я читал кое-что о триггерах mysql, которые были бы полезны здесь, но, честно говоря, я неЯ ничего не знаю о них, поэтому я работаю с тем, что я понимаю.
Мой вопрос заключается в том, следую ли я правильному пути к версии этого материала, и есть ли какие-либо советы / лучшие практики, которые кто-нибудь может мне датьо том, как улучшить этот метод?