Структура базы данных MySQL с ревизиями / историей - PullRequest
0 голосов
/ 27 апреля 2018

Я искал различные структуры БД для задачи, которую пытаюсь достичь, но, похоже, мои идеи ошибочны. Сначала я заглянул в базу данных вики, но мне показалось, что я хочу сделать немного сложнее, а затем увидел, что это выглядит ближе к тому, что я пытаюсь сделать.

Я думал о наличии таблицы, в которой будет храниться окончательная форма, и дополнительной таблицы, в которой будут храниться все ревизии / история. Я не уверен, что если это будет слишком много. Хотя я не уверен, что приведенный выше пример использует этот метод.

1 Ответ

0 голосов
/ 27 апреля 2018

Я сделал нечто похожее - таблицу базы данных с возможностью разбивки на несколько ревизий и неограниченными возможностями отмены, не замедляя работу базы данных. Я использовал дополнительную таблицу для отслеживания «изменения векторов». Каждое изменение может быть отменено.

Существует несколько типов транзакций, поэтому ваша таблица изменений должна отслеживать. Например, простым будет изменение значения. Вы записываете позицию (уникальный идентификатор и имя столбца), а также значение до и после изменения. Во время отмены предыдущее значение восстанавливается.

Самым дорогим изменением является добавление или удаление столбца. Здесь вы используете внешнее хранилище, если вы не хотите иметь чрезмерный столбец longtext / longblob. Для этого подходит база данных nosql, такая как mongodb.

Надеюсь, это поможет вам начать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...