MySQL:
如果我有一个用户表和多个其他表(如卖方、买方等),那么可以使用user_id外键作为表内的主键,比如卖方、买方吗?
这将在此类表的主键字段中留下空白。这会导致查询速度变慢吗?另外,mysql是否会试图通过在中间插入新项(我不想要的)来弥补这些空白?
发布于 2014-12-20 16:23:08
主键必须是唯一的。只要任何特定的用户/user_id不能超过一个卖方/买方(每个),您就可以了。该限制是否有效,取决于您的域。例如,如果一个用户可以经营多个商店,而每个商店的老板被认为是一个独立的销售者,那么它就会失败。(例如,您可能希望将联系信息附加到卖方,这可能因商店而异-但只针对卖方,而不是针对商店。想想共同拥有的企业…)如果有疑问,您可能希望安全操作,而不是将外键作为主键,以避免在将来的某个时候通过模式传播重新设计的麻烦。
至于试图填补空白的MySQL :如果它是外键,您(r应用程序)将是唯一一个插入记录的。因此:没有。
https://dba.stackexchange.com/questions/86663
复制相似问题