![]() |
1
2
对我来说,这似乎是一个糟糕的数据库设计,表应该有一个主键,可以用来搜索和排序,例如用户名作为主键, 没有自动递增的整数主键是糟糕的设计 |
![]() |
2
1
如果您所说的“标识”是指(自动递增为)代理项,即组成DBMS,那么是:
surrogate 只是DBMS任意选取的东西的名称/标识符(日常意义上的“标识”),例如用户“3508218”,而不是“asp8811”、“eight-eight”或“Texas”。请注意 他们 PK/UNIQUE只是表示列集合的子行值在表中是唯一的。此处N 做 有一个“含义”,即DBMS无法控制物品的名称/标识符。事实上,如果一张票只能由一个人持有,那么P也是一个候选键(PK/UNIQUE),无论名字/标识人的值(无论是什么类型)是否是一个代理。 每一个 PK/独特 或超集 在里面 每个基表;查询结果 命名/识别 一些 友善的也就是说,在任何类型上设置的任何列都可以命名/识别事物(1:1或M:1),无论它是否是候选键(PK/UNIQUE)。因此,整数(和任何其他类型或类型集)主键(和UNIQUE)列(和列集)(和父集)是 到处都是 命名/标识而不是代理项,以及它们是否是候选键。 |
![]() |
developer · 带外键的SQL表设计 6 月前 |
![]() |
relatively_random · 确保两个表之间一致的共同参考 7 月前 |
![]() |
b126 · 在两种不同的Oracle模式上执行相同查询的速度差异很大 1 年前 |
![]() |
robertspierre · 在多对多关系中自动删除未引用的行 1 年前 |
![]() |
Michael Samuel · MYSQL在以下情况下自动创建索引 7 年前 |