【发布时间】:2011-01-16 13:25:39
【问题描述】:
可能的重复:
Surrogate Vs. Natural/Business Keys
When not to use surrogate primary keys?
所以,我更喜欢将 INT 作为 AI 的主键。但是,这就是我考虑将唯一字符串作为主键的原因:我不必查询相关表来获取主键,因为我已经知道它了。
例如:
我有一个多对多的关系:
客户 - 订单 - 产品
假设我想添加一个新客户和一个新订单,并且我已经知道他们购买了什么。我必须对产品表进行查询以获取 INT,但如果我有作为主键的字符串(唯一),我不必进行查询(这对我来说似乎更干净,我 不是 谈论优化/运行时速度,根本没有)。
【问题讨论】:
-
这个问题已经被问过很多次了。只需搜索“代理”。我最好的选择:stackoverflow.com/questions/63090/…
-
这可以作为重复关闭,但它更具体一点,因为我在问哪个更适合多对多关系!
标签: sql database-design primary-key