0

我正在与不同国家和城市的不同联系人的网站上工作。

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

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

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

所以我唯一能想到的是:

联系人(表)

contact_persons_id

联系人姓名

和其他信息...

联系方式(表)

contact_persons_id

国家

城市

例如:

月球漫步者 - 法国 - 巴黎

月球漫步者 - 法国 - 马赛

otheruser - 荷兰 - 乌得勒支

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

提前致谢。

ps:语言是PHP和MySql。

4

1 回答 1

2

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

[table_contacts]
  - id
  - name

[table_cities]
  - id
  - name
  - country_id

[table_countries]
  - id
  - name

[table_contacts_cities]
  - id
  - contact_id
  - city_id

[编辑]简化感谢下面的评论。

于 2012-02-24T12:17:51.883 回答