![]() |
1
10
你需要一个复合材料
不做这件事毫无意义
群集主键在每个记录中仅包含两列:
您可能需要在上创建一个附加索引
在这种情况下,最好只有一列
既然你似乎没有这种需要,就做一个复合材料吧
|
![]() |
2
5
其实你不知道 需要 许多人试图避免在实际表中使用自然唯一的键,而是选择人工唯一的键,但我并不总是同意这一点。例如,如果您可以确保您的SSN永远不会更改,则可以使用 作为一把钥匙。如果有什么原因 未来的改变,你可以在那时修复它。 当然 |
![]() |
3
2
除非你真的需要
|
![]() |
4
2
从语义上讲,区别在于您使用什么作为主键。 通常,我会让模式的其余部分决定我在这种情况下的操作。如果交叉表是多对多关系的专用实现,我倾向于使用连接主键。如果我在交叉表上挂起更多的信息,使之成为一个独立的实体,我更倾向于给它自己的id,而不依赖于它所连接的两个表。 当然,这是主观的。我并不认为这是唯一正确的方法(tm)。 |
![]() |
5
1
如果您有许多行,那么在RoleId和/或ReportId列上具有适当排序的索引可能会很有好处,因为这将加快查找操作,但反过来会减慢插入/删除操作。这是一个典型的使用配置文件问题。。。
如果没有其他要求,请省略
|
![]() |
6
0
我建议你第二个选择不要PK。可以对两列的组合使用索引或唯一约束。 |
![]() |
7
0
当您(或其他人,取决于您公司的结构)需要编写一个针对单个角色的前端时,使用RoleReportID作为单列主键的好处就来了<-&燃气轮机;报告关系(例如,删除关系)。在这一点上,您可能更喜欢只需要寻址一列而不是两列来标识链接记录。 除此之外,您不需要RoleReportID列。 |
![]() |
Duvan · 将逗号(,)替换为点(.)[副本] 2 年前 |
![]() |
Mateen Bagheri · 选择表的计数并选择其自身 2 年前 |
![]() |
SoT · SQL Server中求和函数的工作方式 2 年前 |
![]() |
NKAT · 将列值聚合到列表中会产生错误 2 年前 |
![]() |
deanpillow · 返回两列中有一个匹配值的记录 3 年前 |
![]() |
snowflakes74 · 在Dapper中异步查询多个结果 3 年前 |