0

我在其中一个包含员工信息的表中分配主键时遇到问题。该表中没有唯一列,我剩下的唯一选择是将三列组合作为主键。

  1. Warning! The maximum key length is 900 bytes. The index 'pk_hrempid' has maximum length of 1530 bytes.For some combination of large values, the insert/update operation will fail但是当我知道这将是将来插入数据的主要问题时,它会发出警告消息。这个警告有解决方案吗?

  2. 另一个问题是我可以将自动增量值作为唯一 id,推荐吗?我想确保它在未来不会出现问题,因为我有许多包含其他部门员工信息的表格。一些员工可能出现在两个或多个表中

任何帮助表示赞赏!

4

3 回答 3

0

我会为主键使用自动增量类型的解决方案,将个人数据用于此类事情的问题是你不能保证唯一性,这是主键的基本要求。

于 2011-10-18T14:55:29.730 回答
0

虽然从您对复合主键的尝试中听起来您正在尝试使用“自然键”的最佳实践,但使用自动递增ID字段并没有什么“错误”。

如果您建议的字段太大而无法用作键,那么它们可能一开始就不是最佳选择。您能否添加另一个具有更好数据类型的“自然”键列?

不要忘记通过为将被大量查询的表选择好的索引和合适的数据类型来考虑可能的优化。

于 2011-10-18T14:50:51.160 回答
0
  1. 这是主键的限制。PK 不能大于 900 字节。

  2. 您可以向表中添加一个标识列并将其设置为主键。我更喜欢使用 Guid,因为它们是全球唯一的。

于 2011-10-18T14:53:15.567 回答