【发布时间】:2011-06-07 11:52:54
【问题描述】:
完全披露...在这里狂热地尝试了解有关数据库的更多信息,因此我正在投入时间并尝试从源头获得此答案,但无济于事。
databaseanswers 的 Barry Williams 已发布此架构。
我正在尝试了解此架构中地址表的拆分。我很清楚,地址表包含给定地址的详细信息。 Client_Addresses 和 Staff_Addresses 表让我着迷。
1) 我理解主外键的使用,如图所示,但我假设当使用这些外键时,您在同一张表中没有常驻主键(在本例中为 date_address_from)。有人可以解释这两者的原因并用语言表达这实际上是如何工作的吗?
2) 为什么要使用 date_address_from 作为主键,而不是像 client_address_id 这样的 PK?如果有人在一天内输入了两个地址,他的设计会发生冲突吗?如果是或不是,是什么?
3) 沿着规范化路线...由于 Client_Addresses 和 Staff_Addresses 表中的 date_address_from 和 date_address_to 都相同,因此这些字段是否应该不包含在主地址表中?
【问题讨论】:
-
感谢直接在问题中发布 img 的人。我删除它以编辑问题时遇到问题,只是为了发现我的浏览器阻止了 cmets。
标签: database database-design primary-key foreign-key-relationship database-schema