【问题标题】:RDBMS Key ConfusionRDBMS 密钥混淆
【发布时间】:2010-10-19 13:03:11
【问题描述】:

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

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

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

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

网站(参考, 姓名, 收费)

居住地(站点参考, 居民参考,)

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

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

【问题讨论】:

标签: database-design primary-key rdbms normalization


【解决方案1】:

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

只有这样,您才能创建良好的数据库架构。

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

马克

【讨论】:

  • 我就是这么想的。感谢您的确认。
猜你喜欢
  • 1970-01-01
  • 2018-11-11
  • 2015-10-08
  • 2018-11-24
  • 1970-01-01
  • 2020-06-17
  • 2019-03-30
  • 2019-10-06
相关资源
最近更新 更多