首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >复合(复合)唯一键

复合(复合)唯一键
EN

Database Administration用户
提问于 2017-05-14 01:01:49
回答 1查看 4.4K关注 0票数 2

我在这个网页上查找,但也在堆栈溢出和谷歌,因为我认为这可能是一个相当常见的问题,但找不到任何相关的.我在这里可能没有使用正确的术语。

这个问题非常直截了当。

在另一个唯一键中嵌套唯一键(或主键和唯一键的组合)是一种很好的做法吗?

示例:

我有一个列A,B,C,D,E,F和G的表,主键或唯一键是(A,B)和唯一键(A,B,C)和(A,B,D)。

我想知道这是否是一种很好的实践,但也适用于mysql。

非常感谢

EN

回答 1

Database Administration用户

发布于 2017-05-14 04:04:01

  • 每个表都应该有一个PRIMARY KEY。在MySQL中,这意味着两件事:UNIQUEness约束和索引。
  • 任何类型的索引都可以是“复合”(“复合”),即由多个列组成。
  • 在一个表中有两个UNIQUE键很少有用。(记住:PRIMARY算作UNIQUE
  • 一个常见的例外情况是,当您将一个长字符串“正常化”并将其“映射”到一个短INT时。
  • 如果您已经有了唯一的键(a),那么也使用UNIQUE(a,b)UNIQUE(b,a)是不合理和不必要的。另一方面,有一个非唯一的INDEX(a,b)和/或INDEX(b,a)可能是有用的。想想看,(a)的唯一性意味着另外两种的唯一性。
  • INDEX(a,b)中,几乎没有理由使用INDEX(a) (注意:我不是在这个项目中讨论UNIQUE )。

如果我没有回答你的具体问题(可能是间接的),请重新表述你的问题。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/173521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档