我想设计一个用户注册表

时间:2016-04-20 06:33:16

标签: sql-server database-design

我正在SQL Server中设计一个用户注册表,其中有几个表,包括:

  • 劳斯表
  • 国家/地区表
  • 城市表
  • 州表
  • 用户表

我在设计用户表时遇到问题。我应该将Country,states,city列设为varchar还是int?如果它们是int,我应该把它们作为外键吗?

enter image description here

这是我的数据库图表。请帮忙

2 个答案:

答案 0 :(得分:0)

根据database normalization forms,您应该在Country, states, city表中将USER列设为类型为INTForeign key约束的列。

答案 1 :(得分:0)

如果每个用户都需要位于City表中的某个城市,那么在您的用户表中有一个外键city_id并省略州和省(如果它意味着相同)就足够了作为国家)。然后可以从城市派生州和国家,并且您的数据库没有任何冗余。