数据库表中是否总是有主键?

前端之家收集整理的这篇文章主要介绍了数据库表中是否总是有主键?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的数据库表中是否应该有主键?

我们来看看这个标签.您可以在任何版本中看到该标签,它可能位于具有postID和修订版本号的tag_rev表中.我需要一个PK吗?

还因为它是在一个rev表,而不是当前使用的标签应该是一个标记ID的一个blob,而不是多个post_id tagid对的多个条目?

解决方法

您应该努力在您可能想要访问(或更新或删除)该密钥的个别记录的任何非平凡表中拥有主键.主键可以由多个列组成,正式地说,将是最短的可用超级键;也就是说,最短的可用组列,它们一起唯一地标识任何行.

我不知道Stack Overflow数据库模式是什么样的(从Jeff的博客中我读过的一些内容,我不想),但是在你描述的情况下,完全可能有一个密码跨标题,修订号和标签值;当然,这将是最短的(而且只有)超级可用.

关于你的第二点,虽然在归档表中有争议地聚合值可能是合理的,但是它违反了表中每行/列交点应该包含一个单一值的原则.虽然它可能会略微简化开发,但是没有理由不能使用版本化元数据的标准化表,即使是像标签那样微不足道的东西.

原文链接:https://www.f2er.com/mssql/82765.html

猜你在找的MsSQL相关文章