0

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

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

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

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

站点(参考、名称、费用)

驻留(站点参考,驻留参考,)

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

居民参考永远不会唯一标识一个居民,如果有 2 个站点,那么将有 2 001。我不能使用用户名,因为这个字段只填充一次(如果!)他们已经注册了我们的网络服务。我只想为居民引入一个新的自动编号 ID,但我有些烦恼的是,有一个更优雅的解决方案。谁能建议它是什么?

4

1 回答 1

1

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

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

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

马克

于 2009-04-15T08:58:32.307 回答