显示每个国家/地区的联系人市

时间:2012-02-24 12:07:05

标签: php mysql countries

我正在与不同国家/地区的不同联系人建立网站。城市。

我想要实现的是当访问者访问包含有关法国 - 巴黎信息的页面时,脚本将搜索数据库中的联系人并在页面上显示信息。

问题是联系人可以有多个国家/城市负责。

我已经有一个国家和城市表。我不想在这些表中更改或添加任何内容。

所以我唯一能想到的是:

  

contact_persons(table)

     

contact_persons_id

     

contact_persons_name

等信息......

  

联系(表格)

     

contact_persons_id

     

国家

     

城市

例如:

moonwalker - 法国 - 巴黎

moonwalker - 法国 - 马赛

otheruser - 荷兰 - 乌得勒支

但这可以吗?或者还有其他方法可以解决这个问题吗?

提前致谢。

p.s。:语言是PHP和MySql。

1 个答案:

答案 0 :(得分:2)

您可以采用如下所述的方式规范化数据。您将联系人,城市和国家/地区作为单独的数据区域以避免重复。然后你有一张桌子以一对多的关系将联系人映射到城市(一个联系人=许多城市)。

[table_contacts]
  - id
  - name

[table_cities]
  - id
  - name
  - country_id

[table_countries]
  - id
  - name

[table_contacts_cities]
  - id
  - contact_id
  - city_id

[编辑] 通过以下评论简化。