Я знаю, что это субъективно, но я хотел бы узнать мнения людей и, надеюсь, некоторые лучшие практики, которые я могу применить при проектировании структур таблиц SQL Server.
Лично я чувствую, что наложение таблицы на varchar фиксированной (максимальной) длины - нет-нет, потому что это означает необходимость распространять ту же фиксированную длину на любые другие таблицы, которые используют это в качестве внешнего ключа. Использование int
позволит избежать применения одинаковой длины по всей доске, что неизбежно приведет к человеческим ошибкам, т. Е. 1 таблица имеет varchar (10)
, а другая varchar (20)
.
Это звучит как кошмар для первоначальной настройки, плюс означает, что дальнейшее ведение таблиц также затруднительно. Например, скажем, столбец с ключом varchar внезапно становится 12 символами вместо 10. Теперь вам нужно пойти и обновить все другие таблицы, что может оказаться огромной задачей спустя годы.
Я не прав? Я что-то здесь пропустил? Я хотел бы знать, что другие думают об этом, и если придерживаться int для первичных ключей - это лучший способ избежать кошмаров, связанных с обслуживанием.