数据库表中是否总是有主键?
发布时间:2020-12-12 16:14:11 所属栏目:MsSql教程 来源:网络整理
导读:我的数据库表中是否应该有主键? 我们来看看这个标签.您可以在任何版本中看到该标签,它可能位于具有postID和修订版本号的tag_rev表中.我需要一个PK吗? 还因为它是在一个rev表,而不是当前使用的标签应该是一个标记ID的一个blob,而不是多个post_id tagid对的多
我的数据库表中是否应该有主键?
我们来看看这个标签.您可以在任何版本中看到该标签,它可能位于具有postID和修订版本号的tag_rev表中.我需要一个PK吗? 还因为它是在一个rev表,而不是当前使用的标签应该是一个标记ID的一个blob,而不是多个post_id tagid对的多个条目? 解决方法您应该努力在您可能想要访问(或更新或删除)该密钥的个别记录的任何非平凡表中拥有主键.主键可以由多个列组成,正式地说,将是最短的可用超级键;也就是说,最短的可用组列,它们一起唯一地标识任何行.我不知道Stack Overflow数据库模式是什么样的(从Jeff的博客中我读过的一些内容,我不想),但是在你描述的情况下,完全可能有一个密码跨标题,修订号和标签值;当然,这将是最短的(而且只有)超级可用. 关于你的第二点,虽然在归档表中有争议地聚合值可能是合理的,但是它违反了表中每行/列交点应该包含一个单一值的原则.虽然它可能会略微简化开发,但是没有理由不能使用版本化元数据的标准化表,即使是像标签那样微不足道的东西. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- SQLServer中数据库文件的存放方式,文件和文件组
- sqlserver 上机练习题
- sql-server – SQL Server:跨组(而不是组内)的超前/滞后分
- sql – 如何在同一个表中使用不同的条件两次检索同一列?
- 在SQL Server中使用全文搜索的奇怪行为
- linq-to-sql – Linq to sql:order by datetime desc,然后
- SQLServer2005链接Oracle10g数据库
- sql-server – 无法连接:Adaptive Server不可用或不存在
- SQLServer: 用 PARSENAME 实现字符串截取(<=4个)
- 数据库部署最佳实践