【发布时间】:2010-11-21 00:45:49
【问题描述】:
我知道这是主观的,但我想了解人们的意见,并希望在设计 sql server 表结构时可以应用一些最佳实践。
我个人认为在固定(最大)长度的 varchar 上键入表是不行的,因为这意味着还必须在使用它作为外键的任何其他表中传播相同的固定长度。使用int,将避免必须在整个板上应用相同的长度,这必然会导致人为错误,即一个表有varchar (10),另一个有varchar (20)。
这听起来像是最初设置的噩梦,而且意味着将来维护表格也很麻烦。例如,假设键控 varchar 列突然变成 12 个字符而不是 10 个字符。您现在必须去更新所有其他表,这可能是多年后的一项艰巨任务。
我错了吗?我在这里错过了什么吗?我想知道其他人对此有何看法,以及坚持使用 int 作为主键是否是避免维护噩梦的最佳方法。
【问题讨论】:
-
请为您的表格使用数字、离散类型(例如 int/bigint)。或者带有 newsequentialid 的指南,这是另一场辩论......
-
固定长度的varchar?这甚至有意义吗?您只定义 varchar 的最大长度,而不是大小。 en.wikipedia.org/wiki/Varchar
-
@Andrew - 你明白我的意思,是的,我的意思是固定的最大值。对不起,如果我冒犯了你。
标签: sql sql-server database-design