【问题标题】:Show contact person per country & city显示每个国家和城市的联系人
【发布时间】:2012-03-14 21:18:17
【问题描述】:

我在一个网站上工作,在不同的国家和城市有不同的联系人。

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

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

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

所以我唯一能想到的是:

contact_persons(表格)

contact_persons_id

联系人姓名

还有其他信息...

联系人(表格)

contact_persons_id

国家

城市

例如:

月球漫步者 - 法国 - 巴黎

月球漫步者 - 法国 - 马赛

其他用户 - 荷兰 - 乌得勒支

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

提前致谢。

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

【问题讨论】:

    标签: php mysql countries


    【解决方案1】:

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

    [table_contacts]
      - id
      - name
    
    [table_cities]
      - id
      - name
      - country_id
    
    [table_countries]
      - id
      - name
    
    [table_contacts_cities]
      - id
      - contact_id
      - city_id
    

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

    【讨论】:

    • 我认为你在这里有点过火了。几乎按照定义,一座城市仅在一个国家/地区,尽管有少数例外情况主要在一个国家/地区。应该不需要多对多的关系。
    • +1 但同意 Ben 的评论,即不需要城市和国家的多对多。
    • 非常感谢 cilosis。说得通。 :)
    猜你喜欢
    • 2016-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-02
    • 1970-01-01
    相关资源
    最近更新 更多