Я разрабатываю приложение, которое требуется для хранения предыдущих версий строк таблицы базы данных для сохранения истории изменений. Я записываю историю в одну и ту же таблицу, но вам нужны самые последние данные для доступа с помощью уникального идентификатора, который не изменяется с новыми версиями. У меня есть несколько идей о том, как это могло быть сделано, и просто искал какие-нибудь идеи на лучшем способе сделать это, или есть ли какая-либо причина не использовать одну из моих идей:Предлагаемые методы для хранения нескольких версий данных строки SQL
Создать новую строку для каждой версии строки, с полем, указывающим, какая строка была текущей строкой. Недостатком этого является то, что новая версия имеет другой первичный ключ, и любые ссылки на старую версию не возвращают текущую версию.
Когда данные обновляются, версия старой строки дублируется в новую строку, а новая версия заменяет старую строку. К текущей строке можно получить тот же первичный ключ.
Добавить вторую таблицу с первичным ключом, добавить столбец в другую таблицу, которая является внешним ключом для первичного ключа новой таблицы. Используйте тот же метод, который описан в опции 1 для хранения нескольких версий, и создайте представление, которое находит текущую версию, используя первичный ключ новой таблицы.
Конечно, это будет зависеть от использования всей истории, но вы считали таблицу «backup» - таблицу, в которую вы будете перемещать записи ... и будет иметь вашу основную таблицу только с текущей версией каждой строки. –
Любая конкретная причина для записи истории в одной таблице? – UnhandledExcepSean
Я хочу сохранить историю в той же таблице, в которой история может быть просмотрена в любое время, используя тот же код, который отображает текущие данные, а историю можно редактировать и возвращать в текущий момент в любое время. – johna