设计mysql表时的外键放置

设计mysql表时的外键放置,mysql,database-design,relational-database,database-schema,Mysql,Database Design,Relational Database,Database Schema,在设计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

在设计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
哪种方法更好?为什么?这些开发者在做出与外键放置有关的决定时会考虑什么?p>
这可能是一个愚蠢的问题,对某些人来说可能是显而易见的。但我真的很难澄清这一困惑,非常感谢您的帮助。

第一种方法允许每个客户有一个地址,第二种方法允许每个客户有多个地址。这完全基于需求。例如,如果您想记录办公室和家庭地址,则首选第二种方法。记录当前和通信地址、主要办公地址和分支机构地址等的场景很多


第一种方法允许每个客户有一个地址,第二种方法允许每个客户有多个地址。这完全基于需求。例如,如果您想记录办公室和家庭地址,则首选第二种方法。记录当前和通信地址、主要办公地址和分支机构地址等的场景很多


我想你可以在这里看到答案我想你可以在这里看到答案