在设计mysql表时是否有任何规则来管理外键的放置?
即。一些开发人员这样做。
//Place the "address_id" inside the customer table
//Customer Table
Customer_id, Address_id, Customer_Name
1 1 Jay
//Address Table
Address_id, City
1 London
有些人这样做。
//Place the "customer_id" inside the address table
//Customer Table
Customer_id, Customer_Name
1 Jay
//Address Table
Address_id, Customer_id, City
1 1 London
哪种方法更好,为什么?这些开发人员在做出与外键放置相关的决策时会考虑什么?
这可能是一个愚蠢的问题,对某些人来说可能是显而易见的。但我真的很难清除这种困惑,并感谢你的帮助。
答案 0 :(得分:3)
第一种方法允许每个客户一个地址,第二种方法允许每个客户多个地址。这完全基于要求。例如,如果您想记录办公室和家庭住址,则首选第二种方法。有很多场景可以记录当前和通信地址,主要办公地址和分支地址等。