我正在SQL Server中设计一个用户注册表,其中有几个表,包括:
我在设计用户表时遇到问题。我应该将Country,states,city列设为varchar还是int?如果它们是int,我应该把它们作为外键吗?
这是我的数据库图表。请帮忙
答案 0 :(得分:0)
根据database normalization forms,您应该在Country, states, city
表中将USER
列设为类型为INT
且Foreign key
约束的列。
答案 1 :(得分:0)
如果每个用户都需要位于City表中的某个城市,那么在您的用户表中有一个外键city_id
并省略州和省(如果它意味着相同)就足够了作为国家)。然后可以从城市派生州和国家,并且您的数据库没有任何冗余。