Действительно ли имена пользователей являются допустимым кандидатом на первичный ключ?

Я знаю, что суррогатные первичные ключи обычно рекомендуются по естественным первичным ключам, но являются там какими-либо аргументами в пользу суррогатных первичных ключей когда дело доходит до имен пользователей?

7
задан Emanuil Rusev 26 September 2011 в 13:58
поделиться

5 ответов

Если вы не хотите получать дубликаты имени пользователей, создайте уникальное ограничение .

Что если dwong1145 хочет изменить его имя пользователя? Будете ли вы сделать все отношения базы данных для Cascade ?

8
ответ дан 6 December 2019 в 06:50
поделиться

В каком-то смысле это хороший кандидат, однако вы должны учитывать, если вы действительно хотите это сделать. Например, у вас есть пользователь с определенным именем пользователя, то пользователь получает «удален» (или помечен как удален). Итак, на самом деле нет причин для не позволяющих создать другого пользователя с тем же именем пользователя, но оно уже «взято», поскольку он является основным ключом.

5
ответ дан 6 December 2019 в 06:50
поделиться

? Троичный оператор

равен

if( motion == 'pos' ) { return -distance; } else { return distance; } // - is just negating the distance value
-121--4378809-

Большой недостаток наличия последовательности в качестве первичного ключа, независимо от того, является ли она именем пользователя или чем-то другим, заключается в том, что все столбцы внешнего ключа, ссылающиеся на таблицу, также должны быть последовательностями, что и медленнее, и тратит больше места.

2
ответ дан 6 December 2019 в 06:50
поделиться

с точки зрения клиента, вы делаете ставку. Я не хочу, чтобы мое имя пользователя было dwong1145.

-121--3787347-

Нет , вы должны использовать имя пользователя только как уникальный ключ / константу . Имя пользователя можно изменить, просто и пример: это может быть товарный знак, а владелец просит вас бросить его.

7
ответ дан 6 December 2019 в 06:50
поделиться

С точки зрения клиента, вы можете поспорить. Я не хочу, чтобы моим именем пользователя был DWong1145.

4
ответ дан 6 December 2019 в 06:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: