是否有理由将单个递增字段用作主键,而不是实际上代表唯一记录的多个字段?
我正在使用现有的php应用程序,并且表似乎都具有单个“ id”键,而不是使用记录实际唯一的2个或更多字段(例如用户,拍卖,出价)。
我不是数据库专家,但是对我来说,这似乎是个懒惰(或没有经验)。有什么好处(性能或其他)吗?
已更新 :我不是在指代伪数据(ssn,电子邮件地址等),在这里您可能要确保数据确实是唯一的。我说的是带有明显外键引用的表,但是每个表只是具有递增的ID,而不是将这些引用与表本身中的唯一字段一起使用。
没有尝试开始主观辩论,对我而言这没有任何意义。
使用合成主键有几个优点:
数据库通常使用单调递增的键来围绕建立索引进行特定的优化。
话虽如此,不时地进行一些非规范化并没有什么错。如果用例很清楚并且表相对较小,那么请执行方便的操作。