Да кажем, че имам три правилно нормализирани таблици. Един за хора, един за квалификации и един за съпоставяне на хората с квалификации:
хора:
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 предлага добавяне на код към формуляра, който съхранява оригиналната стойност на полето, което може да се сравни с новата стойност при изпращане.