我正在与不同国家/地区的不同联系人建立网站。城市。
我想要实现的是当访问者访问包含有关法国 - 巴黎信息的页面时,脚本将搜索数据库中的联系人并在页面上显示信息。
问题是联系人可以有多个国家/城市负责。
我已经有一个国家和城市表。我不想在这些表中更改或添加任何内容。
所以我唯一能想到的是:
contact_persons(table)
contact_persons_id
contact_persons_name
等信息......
联系(表格)
contact_persons_id
国家
城市
例如:
moonwalker - 法国 - 巴黎
moonwalker - 法国 - 马赛
otheruser - 荷兰 - 乌得勒支
但这可以吗?或者还有其他方法可以解决这个问题吗?
提前致谢。
p.s。:语言是PHP和MySql。
答案 0 :(得分:2)
您可以采用如下所述的方式规范化数据。您将联系人,城市和国家/地区作为单独的数据区域以避免重复。然后你有一张桌子以一对多的关系将联系人映射到城市(一个联系人=许多城市)。
[table_contacts]
- id
- name
[table_cities]
- id
- name
- country_id
[table_countries]
- id
- name
[table_contacts_cities]
- id
- contact_id
- city_id
[编辑] 通过以下评论简化。