RDBMS密钥混淆

时间:2009-04-15 08:30:36

标签: database-design primary-key rdbms normalization

我正在尝试整理公司网站背后的数据库。

我们处理网站和居民。目前,站点引用作为外键包含在Residents表中,但显然,这仅在1NF中。

网站引用的形式为nnnnn(例如12345)。每个居民在nnn形式的网站内有自己的参考(从001开始到最大999结束)。

问题是,当我把它带到2NF时:

站点(参考      名称,      电荷)

居留(SiteReference,           ResidentReference,)

驻地(参考          地址,          用户名,          密码)

居民参考永远不会唯一地识别一个居民,如果有2个站点,那么将有2 001个。我不能使用用户名,因为这个字段只填充一次(如果!)他们已经注册了我们的网络服务。我只是为Residents引入了一个新的自动编号ID,但有一些事情让我感到有些尴尬,因为有一个更优雅的解决方案。任何人都可以建议它是什么?

1 个答案:

答案 0 :(得分:1)

您需要从网站“释放”常驻引用 - 例如使其成为ResidentID并确保每个ResidentID在Resident表中是全局唯一的。每个站点还必须在站点表中具有全局唯一的SiteID。

然后,只有这样你才能创建一个好的数据库模式。

Residency表将提供居民之间的链接(由ResidentID唯一标识)和站点(再次 - 由其SiteID唯一标识)。

马克