Скажем, у меня есть три правильно нормализованных таблицы. Один из людей, один из квалификаций и один отображающий людей на квалификации:
Люди:
id | Name
----------
1 | Alice
2 | Bob
градусы:
id | Name
---------
1 | PhD
2 | MA
Люди к степени:
person_id | degree_id
---------------------
1 | 2 # Alice has an MA
2 | 1 # Bob has a PhD
Итак, я должен обновить это отображение через мой веб-интерфейс. (Я ошибся. У Боба есть степень бакалавра, а не докторская степень, а Алиса только что получила степень бакалавра.)
Существует четыре возможных состояния этих отображений отношений один-ко-многим:
- был истинным раньше, теперь должен быть ложным
- раньше был ложным, теперь должен быть истинным
- был правдой раньше, должен оставаться верным
- был ложным раньше, должен оставаться ложным
что я не хочу делать, так это читать значения из четырех флажков, а затем нажимать на базу данных четыре раза, чтобы сказать: «У Боба была БА раньше? «У Боба была докторская степень раньше? Потому что он больше не имеет» и так далее.
Как другие люди решают эту проблему?
Мне любопытно посмотреть, придет ли кто-то еще к тому же решению, что и я.
ОБНОВЛЕНИЕ 1 : onedaywhen предлагает то же самое, что произошло со мной - просто удалите все старые записи, исправить или нет, и ВСТАВИТЬ новые.
ОБНОВЛЕНИЕ 2 : potatopeelings предлагает добавить в форму некоторый код, в котором хранится исходное значение поля, которое можно сравнить с новым значением при отправке.