Я видел много потоков, прося о сохранении истории записей в mysql. Однако я не совсем уверен, что они подходят моему делу.Как сохранить историю данных в mysql?
Я разрабатываю форму заявки с большим количеством информации о пользователе. До сих пор, я должен нормализовать его в 12 таблицах, хотя большинство из них имеют 1: 1 отношения, но я, хотя они были бы хорошо в будущем использовании:
- User (Id, FULLNAME, имя пользователя, электронная почта, CreatedDate , UpdatedDate, ...)
- Family (Id, UserId, имя, связь, Работа, ...)
- Адрес (Id, UserId, Road, район, область, ...)
- .. .
Когда клиенты заполняли все поля в форме, у них есть два варианта: сначала они могут сохранить его как черновик, во-вторых, они могут подтвердить отправку приложения и больше не могут его изменить.
Я уже провел некоторое исследование. У них много способов сделать это. Например, я мог бы дублировать все таблицы с некоторыми дополнительными полями; VERSIONID. Однако из-за огромного количества таблиц, я не думаю, что это хорошая идея.
Итак, я думаю, что нужно добавить VersionId
в существующие таблицы. Когда они сохраняют форму как черновик, я просто помещал бы эту информацию, не касаясь поля VersionId
, однако я бы увеличил VersionId
на 1, когда пользователь подтвердит подачу заявки.
Любое предложение будет действительно приветствоваться.
Отличное предложение. Однако, если они применили приложение еще раз в следующем году, в этом случае база данных будет иметь две строки с историей состояния. Итак, мне нужно было бы создать еще один столбец для отслеживания, который более поздний, не так ли? – lvarayut
Идея состоит в том, что у вас будет много строк со статусной историей. Это сохраняет записи обо всех изменениях, внесенных ими в запись, при этом «updateDate» показывает порядок изменений. – Barmar
Поскольку у меня много таблиц; адрес, семейство и т. д., я хотел бы присоединиться ко всем таблицам, чтобы получить полную информацию, представленную клиентом в конкретной версии, которую я хочу видеть. Что вы предлагаете в этом случае? – lvarayut