我正在尝试整理公司网站背后的数据库。
我们处理网站和居民。目前,站点引用作为外键包含在Residents表中,但显然,这仅在1NF中。
网站引用的形式为nnnnn(例如12345)。每个居民在nnn形式的网站内有自己的参考(从001开始到最大999结束)。
问题是,当我把它带到2NF时:
站点(参考 名称, 电荷)
居留(SiteReference, ResidentReference,)
驻地(参考 地址, 用户名, 密码)
居民参考永远不会唯一地识别一个居民,如果有2个站点,那么将有2 001个。我不能使用用户名,因为这个字段只填充一次(如果!)他们已经注册了我们的网络服务。我只是为Residents引入了一个新的自动编号ID,但有一些事情让我感到有些尴尬,因为有一个更优雅的解决方案。任何人都可以建议它是什么?
答案 0 :(得分:1)
您需要从网站“释放”常驻引用 - 例如使其成为ResidentID并确保每个ResidentID在Resident表中是全局唯一的。每个站点还必须在站点表中具有全局唯一的SiteID。
然后,只有这样你才能创建一个好的数据库模式。
Residency表将提供居民之间的链接(由ResidentID唯一标识)和站点(再次 - 由其SiteID唯一标识)。
马克