当前位置:  开发笔记 > 编程语言 > 正文

本机主键还是自动生成的?

如何解决《本机主键还是自动生成的?》经验,为你挑选了1个好方法。

通常,最好使用本机主键(即现有列或列组合)或将主键设置为自动生成的整数行?

编辑:
有人向我指出,这与这个问题非常相似.

这里的共识是使用代理键,这是我的天生倾向,但我的老板告诉我,我应该尽可能使用自然键.他的建议对于这个特定的应用程序可能是最好的,因为行中的Name唯一地标识它并且我们需要保持查看旧数据的能力,因此对名称/规则的任何更改将意味着新的唯一行.

虽然这里的答案都很有帮助,但大多数都是基于主观的"这就是你应该做的",而不是引用支持来源.我是否缺少一些必要的阅读材料,或者数据库设计是否具有高度主观性和/或依赖于应用程序?



1> Tomalak..:

主键

    必须唯一地标识一行.

    不得包含数据,否则当数据发生变化时会发生变化(这很糟糕)

    应该快速比较操作(WHERE子句/连接)

理想情况下,您为行使用人工(代理)键,数字整数数据类型(INT)最好,因为节省空间和快速.

主键应该由最小数量的字段构成,以满足条件1.-3.对于绝大多数表,最小值为:1字段.

对于关系表(或非常特殊的边缘情况),它可能更高.引用具有复合主键的表很麻烦,因此不建议对必须在其自己引用的表上使用复合键.

在关系表(m:n关系)中,您可以从相关表的主键中创建复合键,因此您的复合键会自动满足上述所有三个条件.

如果你绝对确定,你可以用数据制作主键,它将是唯一的,永远不会改变.由于这很难保证,我建议不要这样做.

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有