加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间: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的博客中我读过的一些内容,我不想),但是在你描述的情况下,完全可能有一个密码跨标题,修订号和标签值;当然,这将是最短的(而且只有)超级可用.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读