Задать вопрос
@Tetragramatron

Почему не стоит использовать идентификатор сущности как первичный ключ в базе?

Вопрос появился при проектировании БД, хранящей некоторые объекты. Каждый из этих объектов (некоторое устройство) имеет свой глобально уникальный идентификатор (назовём его domain id), представляющий собой строку длины символов в 40, и этот идентификатор содержит в себе определённое знание предметной области.
Интуитивно я понимаю что при хранении набора этих объектов в таблице лучше использовать отдельное целочисленное поле в качестве primary key, но при обсуждениях с напарником аргументов кроме
1. семантика primary key и domain id разная, не надо её путать,
2. база будет быстрее оперировать целочисленными ключами а не строковыми (но это заявление не проверялось) и
3. копчиком чую это плохая идея
у меня нет.
Объекты создаются довольно редко, запрашиваются весьма часто, идентификаторы используются и в других службах этой системы и в других таблицах.

Коллеги, подкиньте аргументов или опровергните мои доводы (особенно третий).
  • Вопрос задан
  • 3985 просмотров
Подписаться 2 Оценить 1 комментарий
Ответ пользователя trerums К ответам на вопрос (4)
trerums
@trerums
Ответ написан
Комментировать