ary*_*axt 13 sql database-design data-modeling surrogate-key natural-key
哪一个是最佳实践,为什么?
外键是user.type到type.id:
user.type
type.id
外键是user.type到type.typeName:
type.typeName
Dan*_*llo 17
我相信在实践中,使用自然键很少是最好的选择.我可能会像你的第一个例子那样采用代理键方法.
以下是自然键方法的主要缺点:
您的类型名称可能不正确,或者您可能只想重命名该类型.要编辑它,您必须更新将其用作外键的所有表.
int字段上的索引将比字段上的索引更紧凑varchar.
int
varchar
在某些情况下,可能很难拥有唯一的自然键,这是必要的,因为它将用作主键.这可能不适用于您的情况.
Ada*_*tek 9
第一个是未来证明,因为它允许您更改表示类型的字符串而不更新整个用户表.换句话说,您使用代理键,为了灵活性而引入了一个额外的不可变标识符.
归档时间:
15 年,8 月 前
查看次数:
2983 次
最近记录:
9 年,10 月 前