Насколько я понимаю, идет война между пуристами естественного ключа и пуристами суррогатного ключа. Мне нравится этот этот пост (есть еще ) люди говорят: «естественный ключ вреден для вас, всегда используйте суррогат ...
Однако либо я глуп, либо слеп, но я не вижу причин всегда иметь суррогатный ключ!
Допустим, у вас есть 3 таблицы в такой конфигурации:
Зачем мне для этого нужен суррогатный ключ? Я имею в виду, что имеет смысл не иметь этого.
Кроме того, может кто-нибудь объяснить, почему первичные ключи никогда не должны меняться в соответствии с пуристами суррогатных ключей? Я имею в виду, если я сказал color_id VARCHAR(30)
, а ключ - black
, и мне больше не нужен черный, потому что я меняю его на charcoal
, почему это плохая идея менять black
ключ на charcoal
и все ссылающиеся столбцы тоже?
РЕДАКТИРОВАТЬ: только что заметил, что мне даже не нужно его менять! Просто создайте новый, измените столбцы ссылок (так же, как я сделал бы с суррогатным ключом) и оставьте старый в покое ...
В мантре суррогатного ключа мне нужно затем создать дополнительную запись, скажем, с id=232
и name=black
. Какая от этого польза для меня на самом деле? У меня в столе есть запасной ключ, который мне больше не нужен. Также мне нужно присоединиться, чтобы получить название цвета, а иначе я могу остаться за одним столом и веселиться?
Пожалуйста, объясните, как пятилетнему ребенку, и имейте в виду, что я не пытаюсь сказать «суррогатный ключ - это плохо», я пытаюсь понять, почему кто-то говорит такие вещи, как «всегда используйте суррогатный ключ!».