我正在设计一个网站用户界面(注册,登录,编辑个人资料,编辑地址等)。
我创建了以下表格。我的问题是,是否有任何冗余的列或表?此外,考虑到用户可以添加/编辑另一个地址这一事实,哪些列将是主键,哪些列将是外键?
我使用了CountryCode
的三个下拉列表(针对移动电话号码) - 来自CountryCode
的{{1}},ACountry
(来自地址) - 填充自{{ 1}}来自Country
和Country Name
(来自地址) - 来自ACountry
来自State
。其中,国家/地区代码下拉列表出现在注册页面上。其他2个位于用户登录后显示的地址簿页面上。StateName
& Astate
表将存储数据。
我不知道我将如何加入这些表格。我是否包含足够/更多/更少的列?我应该做些什么改变。
UPDATE1: 我已将数据库更新为以下表/列。现在我如何建立国家代码和国家代码之间的关系?国家代码(已标记)...或者我应该从AUser中删除CountryCode。如果我保留两个表格,我将把数据存储在2个地方。我不想这样做......问题是国家代码的格式。它采用名称和拨号代码(例如印度(+91))。如果我从AUser中删除该列,我将如何存储移动设备。然后? 可能是我必须打破国家/地区代码字符串并删除拨号代码部分并将其存储在移动号码中。在Mobile列中。这听起来太复杂了。
答案 0 :(得分:2)
你唯一没有合适的关系是在AUser
和ACountry
之间。目前,CountryCode
上有AUser
。那应该是CountryID
,因为这是ACountry
的主键。
此外,AUserAddress
不应该StateID
而不是State
?如果是这种情况,那么就不需要在该表上同时拥有StateID
和CountryID
,您可以通过查看{{1}中引用的相应State
来确定用户的国家/地区。列。