用于关系专业人员的SQL单独表缺点

时间:2016-10-08 14:07:51

标签: sql database-design schema

我正在研究数据库设计,所以想了解专业知识只为关系而单独设置表的缺点。

应该是这样的:

  1. 客户[客户详细信息](CustomerID AS PK)
  2. 地址[地址详细信息](地址ID为PK)
  3. CustomerAddress [CustomerID FK,AddressID FK]
  4. 或者

    1. 客户[客户详细信息](CustomerID AS PK)
    2. 地址[地址详情,客户ID FK]
    3. 客户可以拥有多个地址。

      有什么优点和缺点?

1 个答案:

答案 0 :(得分:4)

这是一个合理的问题。

基本上,它归结为一个问题:“你想要两个相同的地址总是拥有相同的密钥吗?”。

在第一个版本中,“地址详细信息”在整个数据库中可以是唯一的。因此,两个室友可以拥有相同的AddressId。当史密斯离开并且琼斯搬进来时,他们可以拥有相同的AddressId

在第二个版本中,每个人都有一个或多个地址记录。但是,可以重复给定地址的详细信息。

哪个更好取决于您的应用程序。通常,当您联系地址的人时,第一种方法更可取,因为“重复数据删除”已内置于数据模型中