名字和姓氏之间的关系

Gor*_*ble 5 database-design relational-theory

我在理解表中一个人的名字和姓氏之间的关系时遇到了一些麻烦。(在关系模型中)

我读过这种关系类型为:1-1:它们链接在一起。

但同一个名字可以归属于多个人。一个人可能有多个名字......

我的理解是:

即使“John Doe”在世界各地有许多同音异义词,但在数据库中,他的名字将直接与他的姓氏相关联。

为了避免这个问题,我们可以将姓氏和名字重新组合在一行中,但这会以人类问题结束(格式错误:哪个顺序,大写字母?用空格或逗号分隔......?)

在生成邮件的情况下(例如),我应该使用以下格式:标题 + 姓氏(Mr. Doe)而不是(Mr. DOE John)。

然后我应该原子化我的两个值。

这种反思似乎毫无用处,因为我的研究应该基于 ID 或其他标准,但当我仍在学习时,我试图以最好的方式理解数据库概念的每个细节。

Bua*_*aXD 8

我认为这个例子是一个非常理论化的例子。我从未见过任何分离FirstNamesLastNames表格的真实世界示例。当然,您可以通过这种方式规范化您的数据库,但在大多数情况下它没有多大意义。

回到关系。我认为这里有两种关系:

  1. 名字 - 人 1:1
  2. 姓氏 - 人 1:1

我认为名字和姓氏之间没有关系。

我们可以采用一个略有不同的方法,使用一个姓氏(姓氏)和多个“名字”。那么名字和人名之间可以存在多对一的关系。

然而,在大多数情况下,名字和姓氏只是一个人的属性。要解决邮件生成问题,您可以设置 3 列:first name,middle namelast name。然后您只使用名字和姓氏来生成邮件,并将中间名存储用于其他目的。

  • 许多人可能共享名字或姓氏。所以在这两种情况下对我来说似乎都是 1:N。 (2认同)