joh*_* Gu 4 sql-server-2008-r2 surrogate-key table
我应该将文档版本设置为主键吗我正在开发一个文档管理系统,并且我有这两个表代表整个表的一部分。

在 DocumentVersion 表上,我将主键设置为 (version + documentID) 。如果这是一种推荐的方法,其中 documentID 的类型为 int 而版本的类型为 decimal(5,2) ,那么任何人都可以提出建议吗?或者如果我创建一个新字段并将其设置为 DocumentVersion 表中的主键会更好?谢谢
这张DocumentVersion桌子对我来说很有意义。这两列通过与DocumentID主键的关系很好地定义了文档,Document并Version为DocumentVersion. (顾名思义。)
有一个包含两种不同数据类型的主键没有问题,因此 anINT和 aDECIMAL(5,2)将在同一个主键中愉快地共存。
您想要避免的是在不匹配的数据类型之间进行连接,例如将 aVARCHAR(10)与INT. 即使所有数据都是干净的,这也可能会导致连接性能出现问题。(当然, aVARCHAR可以保存不会转换为的字符串,INT这将是另一类问题。)
编辑:根据您的使用情况,代理 PK 列DocumentVersionID可能有益于其他表的参考。但是,为了跟踪版本的完整性DocumentID,Version , 至少应该由UNIQUE CONSTRAINT.
例如 ... CONSTRAINT Unique_DocumentVersion UNIQUE (DocumentID, Version);
| 归档时间: |
|
| 查看次数: |
408 次 |
| 最近记录: |