【发布时间】:2012-02-29 18:31:46
【问题描述】:
我有一个包含数百万条记录的巨大表,假设我的自然键太大并且将来可能会更改,我想添加一个代理主键,并将该代理用作不同表中的外键。
- 我应该将我的自然键也作为主键吗?还是应该和其他专栏一样?
该表的大部分访问是通过自然键搜索
- 为了时间性能,应该删除自然键还是将其定义为备用键?
- 我不想拥有 2 个相同的自然键,应该如何通过使用自然键作为主键来强制执行?
- 如果我使用自然键作为主键并添加另一个代理键并将其也定义为主键,这意味着什么? 我尝试搜索示例确实可以找到一个很好的示例,链接/示例也确实会有所帮助。
【问题讨论】:
-
“假设我的自然键太大”——也许你的假设不正确,所以请提供更多细节。 “未来可能会改变”——稳定性是一把好钥匙的属性;不变性是理想的,但不是先决条件。但是可能会改变吗? YAGNI.