gpt4 book ai didi

sql - 表中主键的最佳做法是什么?

转载 作者:太空狗 更新时间:2023-10-30 01:36:44 26 4
gpt4 key购买 nike

<分区>

在设计表格时,我养成了一个习惯,即有一列是唯一的,并且我将其作为主键。根据要求,这可以通过三种方式实现:

  1. 自动递增的标识整数列。
  2. 唯一标识符 (GUID)
  3. 可以作为行标识符列的短字符(x)或整数(或其他相对较小的数字类型)列

数字 3 将用于相当小的查找,主要是读取可能具有唯一静态长度字符串代码或数值(例如年份或其他数字)的表。

在大多数情况下,所有其他表都将具有自动递增整数或唯一标识符主键。

问题:-)

我最近开始使用没有一致的行标识符的数据库,并且主键目前聚集在各个列中。一些例子:

  • 日期时间/字符
  • 日期时间/整数
  • 日期时间/varchar
  • 字符/nvarchar/nvarchar

这有有效的案例吗?对于这些情况,我总是会定义身份或唯一标识符列。

另外还有很多表根本就没有主键。如果有的话,有什么正当理由?

我试图理解为什么表格是按原样设计的,这对我来说似乎是一团糟,但也许有充分的理由。

第三个问题可以帮助我解读答案:在使用多列组成复合主键的情况下,与代理项/人工键相比,这种方法是否有特定优势?我主要考虑性能、维护、管理等方面的问题?

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com