我一直在重新审视为什么我一直在 SQL Server 2005 数据建模中做某些事情。
我习惯性地使用标识作为表键,为应该唯一的实际数据创建唯一索引,而不是关闭它。
所以,如果我有一张学生桌,我可能会有:
ID identity primary key,
StudentIdentifier char(8)
我会在 StudentIdentifier 上放置一个唯一索引,因为这是大学用来引用学生的代码,但我会将 Student.ID 存储在引用 Student 的任何表中。
在 SQL Server(2005 版)中使用自动编号标识字段仍然是一个好习惯吗?
还 -
我使用 int 代码来查找值并将这些 int 存储在相应的引用表中。
例如,我可能有一个这样的工作流表:
id statuscode DESCRIPTION
1 CIProgress CI Grade in Progress
2 Finalized Finalized
3 NeedsSingle Needs Single Read
4 NeedsFirst Needs First Read
5 SingleProgress Single Read in Progress
在具有工作流属性的表中,我将存储 id (1),然后加入工作流表以获取状态代码或描述。
例如,可以存储状态码吗?通过在短代码上使用 int 可以获得多少效率?
自从我开始编码以来的 15 年里,我已经看到了很多实现,我突然想到,也许我正在把旧的“规则”铭记在心,而不考虑实践。