【发布时间】:2015-04-14 21:39:23
【问题描述】:
我正在创建一个类似于 youtube 的视频网站,但它的目标是独立游戏社区。
我正在设计表格,但在位置列方面遇到了一些绊脚石。
各大网站如何设计存储位置的表格?
Profile表:
ID | username | country | state
0 | jack | US | New York
1 | ted | Canada | Alberta
或
ID | username | countryID
0 | jack | 1
1 | ted | 2
Regions表:
ID | country | state
0 | United States | Texas
1 | United states | New york
2 | Canada | Alberta
还是我错过了其他一些设计?
【问题讨论】:
-
我讨厌您存储用户名,它不是 user_id 列或其他标识符。大多数设计会将位置非规范化到保持位置(国家、州、省、城市、邮政编码)的程度。因此,您的个人资料表将是(ID、用户名、site_id)。
-
ID 是我的表的主键。我没有使用用户名作为主键,这是你的意思吗? site_id 列的用途是什么?
-
抱歉,
site_id与regions表中的ID列相关。请原谅我误读的最后一部分,但它确实引出了另一个问题,您的个人资料表是主要用户表吗?如果用户更改了他们的个人资料或者这是一对一的永久联系怎么办? -
不用担心,这是一对一的关系,他们只能有一个位置
-
但是一个
user可以只有1个profile吗?
标签: sql-server database normalization