相关疑难解决方法(0)

表中主键的最佳实践是什么?

在设计表时,我养成了一个习惯,就是让一个列是唯一的,并且我制作了主键.这取决于要求以三种方式实现:

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

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

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

问题:-)

我最近开始使用没有一致行标识符的数据库,主键目前在各个列上进行聚类.一些例子:

  • 日期时间/字符
  • 日期时间/整数
  • 日期时间/ VARCHAR
  • 炭/ NVARCHAR/nvarchar的

这有一个有效的案例吗?我总是会为这些案例定义一个标识或唯一标识符列.

此外,还有许多表没有主键.这有什么正当理由?

我试图理解为什么桌子的设计原样,对我来说这似乎是一个很大的混乱,但也许有充分的理由.

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

sql database sql-server relational

245
推荐指数
11
解决办法
15万
查看次数

重新排序/重置自动增量主键

我有一个带有自动增量主键的MySQL表.我删除了表中间的一些行.现在我在ID列中有这样的东西:12,13,14,19,20.我删除了15,16,17和18行.

我想重新分配/重置/重新排序主键,以便我有连续性,即使19 a 15,20 a 16,依此类推.

我该怎么做?

mysql database

120
推荐指数
7
解决办法
20万
查看次数

标签 统计

database ×2

mysql ×1

relational ×1

sql ×1

sql-server ×1