Разрабатываю систему опросов (magento 2).
На данный момент запланированы таблицы:
- опросов;
- вопросов к опросам;
- вариантов ответов;
- ответов пользователей.
Так же нужно предусмотреть изменение вопросов к опросу после того как уже есть ответы пользователей. А именно, хотелось бы хранить историю ответов даже для уже не существующих вопросов (для показа в админке).
Есть идея таблицы history где будут ответы (и вопросы) в текстовом виде без привязки к вопросам. Т.е. происходит дублирование в случае каких-либо изменений в вопросах.
Из минусов: после любого изменения нужно будет брать все ответы юзеров и записывать заново. Получается сильно раздуто.
p.s. Пришла идея сохранять ответы только для вопросов, которые были изменены или удалены, т.е. как в git.
Есть другая идея: если возникла потребность изменить что-либо в опросе, нужно создавать новый. Чтобы не мучиться с набиванием одних и тех же вопросов, таблица вопросов отвязывается от опросов и служит только как словарь из которого можно взять готовый вопрос в новый опрос.
Из минусов: даже со словарем получается не так легко менять как в 1 случае.
Плюсы: легко хранить историю, даже не нужны лишние таблицы.