2016-08-30 3 views
1

Наша исследовательская группа имеет внутреннюю базу данных sqlite со многими тысячами записей, многие из которых являются собственностью и, следовательно, являются частными. У нас также есть опубликованная версия базы данных, которая содержит подмножество данных: две сотни записей. Я пытаюсь решить, как наилучшим образом отслеживать, какие записи были опубликованы, и подумать о том, как я могу отслеживать, которые опубликованы в версиях 1, 2, 3 и т. Д. В идеале я мог бы захватить все записи с помощью определенный номер версии или ниже для создания подлежащего публикации подмножества базы данных.Управление версиями подкатегорий базы данных SQLite

Наша команда имеет две идеи:

  1. добавить новую таблицу в базе данных, которая отслеживает первичного ключа, имя таблицы, и номер версии для всех опубликованных данных,
  2. добавить новый столбец для каждой таблицы со значением по умолчанию NULL, который имеет номер выпуска для опубликованных записей

Есть ли принятый метод о том, как это сделать? Я попытался найти лучшие практики, но это похоже на уникальный сценарий.

+0

Почему вы используете тег mysql? .please удалить unsed tag .. – scaisEdge

+2

Я думаю, что оба варианта в порядке. Я бы выбрал тот, у кого наименьшее количество накладных расходов для вас. –

ответ

1

Вариант 2, вероятно, будет проще всего реализовать и может быть быстро проиндексирован - однако вы будете потенциально денормализовать данные.

Вариант 1 был бы предпочтительным вариантом для нормализованной структуры данных, но для написания SQL потребуется немного больше работы.

Я был бы соблазн пойти на вариант 1.

Таким образом, исходные данные не будут затронуты, особенно если вы решите, что подмножество больше не требуется в будущем (не будет излишним колонка).

Хотя вы можете легко отредактировать таблицу - это, как правило, не рекомендуется лапшеи с производственными «живыми» данными.

Сказанное - оба варианта вполне приемлемы.

Смежные вопросы