数据库设计 - 用户位置应该存储在哪里
Database Design - Where should user location be stored
我正在建立一个交友网站。我遇到的问题是我应该在哪里存储用户的位置(我需要存储两个变量 [country] [state/province])。
友情站点目前有问答table存储用户属性,如用户宗教、用户眼睛颜色等...
在 userAttributes table 中再添加两个问题是否合适? (见下面的选项 1)
- 你是哪个国家
- 你所在的州/省是什么
或
国家和州属于自己的 table 与 userAttributes table 分开。 (见下面的选项 2)
选项 1 - 用户属性 Table
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 - 配置文件位置 Table
Id | country | province-state
1 | Canada | Alberta
2 | United States | New York
3 | United States | Louisiana
注意:该网站可能有 900 - 1000 个省/州,因此这将真正填满 userAttributes Table。
您有两个问题,以及大量相互关联的答案。您应该将 answers 存储在两个 table 中,我将其称为 countries
和 provinces
。 provinces
table 链接回 countries
table 因此您可以轻松提取所需的数据。
这给你
国家
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 来填充从那里下拉)。
我正在建立一个交友网站。我遇到的问题是我应该在哪里存储用户的位置(我需要存储两个变量 [country] [state/province])。
友情站点目前有问答table存储用户属性,如用户宗教、用户眼睛颜色等...
在 userAttributes table 中再添加两个问题是否合适? (见下面的选项 1)
- 你是哪个国家
- 你所在的州/省是什么
或
国家和州属于自己的 table 与 userAttributes table 分开。 (见下面的选项 2)
选项 1 - 用户属性 Table
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 - 配置文件位置 Table
Id | country | province-state
1 | Canada | Alberta
2 | United States | New York
3 | United States | Louisiana
注意:该网站可能有 900 - 1000 个省/州,因此这将真正填满 userAttributes Table。
您有两个问题,以及大量相互关联的答案。您应该将 answers 存储在两个 table 中,我将其称为 countries
和 provinces
。 provinces
table 链接回 countries
table 因此您可以轻松提取所需的数据。
这给你
国家
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 来填充从那里下拉)。