Mysql 需要对地址表进行规范化
希望这是一个可以接受的问题,而不是编程问题 我有一个包含多个表的数据库 学生 老师 父母 职员 所有这些都需要有对地址表的引用 地址 -门牌号 -街头 -城镇 -城市 -邮政编码 我的问题是: 如何创建一个数据重复很少的地址表。是否只有这样才能为每个表分别设置表Mysql 需要对地址表进行规范化,mysql,database,normalization,database-normalization,Mysql,Database,Normalization,Database Normalization,希望这是一个可以接受的问题,而不是编程问题 我有一个包含多个表的数据库 学生 老师 父母 职员 所有这些都需要有对地址表的引用 地址 -门牌号 -街头 -城镇 -城市 -邮政编码 我的问题是: 如何创建一个数据重复很少的地址表。是否只有这样才能为每个表分别设置表 希望你们能提供建议。有一个单独的地址表,其中包含以下列 address_id door_number street town city state country postcode 现在,在每个表(学生、家长、教师、教职员工)中都有一
希望你们能提供建议。有一个单独的地址表,其中包含以下列
address_id
door_number
street
town
city
state
country
postcode
现在,在每个表(学生、家长、教师、教职员工)中都有一个address_id列,并为address表中的address_id创建一个外键
假设学生和家长已经相关,您可以在家长表中找到地址。您可以在其他人之间使用一个共同的地址表。。但是如果不同实体共享同一地址,那么您可以在每个实体中保留该地址。学生、教师、家长和员工表的主键是什么?这不是正常化。感谢您的快速响应@Rocky。这是我的地址,但我认为地址表中仍然会有重复分配-例如,街道名称将重复200多次。我的问题是有没有更好的方法。你可以通过为街道、城镇、城市、州、国家等设置单独的表来完全规范化。这是一个很好的设计,但缺点是连接太多,无法获得所需的数据。您预计会有多少数据,您会使用它以最少的读取量存储数据吗?或者你会定期访问它吗?如果需求是存储和最低限度的读取,那么您仍然可以继续使用完全规范化的方法。然而,如果我们想要基于地址搜索、自由文本搜索和检索数据,那么规范化方法可能并不合适choice@MarkJames&洛基复制本身没有问题。您将复制与冗余和压缩混为一谈。标准化不会建议为street、town等创建单独的表,也不会引入像ID这样的新列。(如果引入id,则值的id将显示在该值已存在的任何位置,因此不会减少重复次数。)