|
1
7
拥有复合唯一键通常不是一个好主意。
最好创建一个代理密钥,一个没有任何商业意义的自动编号。 编辑 更新后: 在这种情况下,您可以考虑 概念上没有主键 ,并使这三列成为复合唯一键的主键(使其可更改)。 |
|
|
2
2
做这个。 使用代理主键将产生一个额外的列,该列不用于其他目的。
创建一个
|
|
|
3
1
你有几把钥匙和几套钥匙?它们需要是varchar(50)还是可以指向查找表?如果可以将此集合和键转换为SetId和KeyId,则可以在3个整数值上创建主键,这将更快。 |
|
|
4
0
我可能会尝试确保UserID是唯一的标识符,而不是在整个代码中都有重复的UserID。复合键在代码生命的后期往往会变得混乱。 我假设这是某种配置值的查找字段,因此如果是这种情况,您可能会使用复合键。数据已经存在。您可以使用主键保证它的唯一性。如果您改变了主意,后来决定它不适合您,您可以轻松地添加一个SettingId,并将原始复合键设置为唯一索引。 |
|
|
5
0
创建一个单独的主键。无论bussines逻辑将如何变化,您的Key VARCHAR(50)字段都必须应用哪些新规则-拥有一个主键将使您完全独立于bussines逻辑。 |
|
|
6
0
就我个人而言,我会创建另一个FK列,并在其他三个列上设置一个唯一的约束。这使得该表的外键更容易吞下。 |
|
|
7
0
我不是复合键的支持者,但在本例中,作为一个行尾表,它可能是有意义的。但是,如果由于插入时一个或多个值未知,因此在这三个字段中的任何一个字段中允许为空,则可能会有困难,并且唯一索引可能更好。 |
|
|
8
0
最好将UserID设置为32位newid()或唯一标识符,因为UserID设置为int会向用户提示可能的UserID。这也将解决您的复合密钥问题。 |
|
|
Max · 用两列中的特定值对识别R中的数据帧行 1 年前 |
|
|
Dasi · Pandas.loc返回序列或浮点数不一致 2 年前 |
|
climsaver · 首次连续查找两个相同值的索引 2 年前 |
|
|
babipsylon · 在C中创建div_t类型结构元素的数组++ 2 年前 |
|
|
Martin AJ · 如何在庞大的数据集上快速执行COUNT(*)? 2 年前 |