Я знаю, что суррогатные первичные ключи обычно рекомендуются по естественным первичным ключам, но являются там какими-либо аргументами в пользу суррогатных первичных ключей когда дело доходит до имен пользователей?
Если вы не хотите получать дубликаты имени пользователей, создайте уникальное ограничение
.
Что если dwong1145
хочет изменить его имя пользователя? Будете ли вы сделать все отношения базы данных для Cascade
?
В каком-то смысле это хороший кандидат, однако вы должны учитывать, если вы действительно хотите это сделать. Например, у вас есть пользователь с определенным именем пользователя, то пользователь получает «удален» (или помечен как удален). Итак, на самом деле нет причин для не позволяющих создать другого пользователя с тем же именем пользователя, но оно уже «взято», поскольку он является основным ключом.
? Троичный оператор
равен
if( motion == 'pos' ) { return -distance; } else { return distance; } // - is just negating the distance value
-121--4378809- Большой недостаток наличия последовательности в качестве первичного ключа, независимо от того, является ли она именем пользователя или чем-то другим, заключается в том, что все столбцы внешнего ключа, ссылающиеся на таблицу, также должны быть последовательностями, что и медленнее, и тратит больше места.
с точки зрения клиента, вы делаете ставку. Я не хочу, чтобы мое имя пользователя было dwong1145.
-121--3787347-Нет , вы должны использовать имя пользователя только как уникальный ключ / константу . Имя пользователя можно изменить, просто и пример: это может быть товарный знак, а владелец просит вас бросить его.
С точки зрения клиента, вы можете поспорить. Я не хочу, чтобы моим именем пользователя был DWong1145.