数据库设计 - 用户位置应存储在何处

时间:2015-02-23 01:44:10

标签: database location

我正在建立一个友谊网站。我遇到的问题是我应该在哪里存储用户的位置(我需要存储两个变量[country] [state / province])。

友谊网站目前有一个问答表,用于存储用户宗教信息,用户眼睛颜色等用户属性......

向userAttributes表添加两个问题是否合适? (见下文选项1)

  1. 你的国家是什么
  2. 你的州/省是什么
  3. OR

    国家和州是否属于userAttributes表中独立的表。 (见下文选项2)

    选项1 - userAttributes表

    Question                    | Answer 
    What is your eye color      | blue
    What is your eye color      | green
    What country                | Canada
    What state / province       | Alberta
    What state / province       | Ontario
    What country                | United States
    What state / province       | New York
    What state / province       | Louisiana
    What state / province       | Georgia 
    etc ...
    

    选项2 - ProfileLocation表

    Id | country       | province-state
    1  | Canada        | Alberta
    2  | United States | New York
    3  | United States | Louisiana
    

    注意:该网站可能有900-1000个省/州,因此这将填满userAttributes表。

1 个答案:

答案 0 :(得分:2)

您有两个问题,以及大量相互关联的答案。您应该将答案存储在两个表中,我将其称为countriesprovincesprovinces表链接回countries表,以便您轻松提取所需的数据。

这会给你

国家

id   |  Name
------------------------------
1    |  USA
44   |  United Kingdom
64   |  New Zealand

id  | Country ID | Name
1   | 1          | Oregon
2   | 1          | Arizona
3   | 1          | Kentucky
4   | 44         | London
5   | 44         | Kent
6   | 64         | Waikato
7   | 64         | Wairarapa

(你可以填写其余部分)

一个简单的查询将填充您网页上的countries下拉菜单。 AJAX调用和第二个简单查询可以动态填充provinces下拉列表(或者您可以在加载页面时发送列表,并使用一些Javascript来填充下拉列表)。 / p>