【问题标题】:Dependencies in a logical model mySQL [closed]逻辑模型 mySQL 中的依赖项
【发布时间】:2021-06-29 05:14:33
【问题描述】:

我正在为一个数据库做逻辑模型,其中有实体 Customer。 每个客户都会有一些“固定”属性(姓名、姓氏、地址、电话号码……)和其他一些有时必须更新的属性(用户名、密码、年龄、体重……)

现在我的问题是:你建议我创建两个不同的表吗,像这样:

Customer ( CustomerID, Name, Surname, Address, telephone number ) 
Customer_Spe ( CustomerID, age, Username, Password, weight )

或者,一个具有所有这些属性的单个?

Customer ( CustomerID, Name, Surname, Address, telephone number, age, Username, Password, weight) 

你能证明你的答案吗?

【问题讨论】:

  • 基于意见。这两种选择各有利弊。
  • 你会选择哪一个? @Akina

标签: mysql sql database entity-framework entity-framework-core


【解决方案1】:

在大多数数据库中,根据更新频率在第二个表中分离属性并没有特别的优势。

分离属性有正当理由:

  • 您可能希望在单独的表中与 PII(隐私)相关的属性来控制访问。
  • 您可能希望将不常用的属性放在单独的表中,以减少为大多数查询读取的数据量。
  • 如果附加表是可选的,那么您可以通过在第二个表中没有行来减少数据大小。
  • 如果您有非常易失性数据且更新非常频繁(认为每秒有很多),那么您可能需要分离出这些列以减少对其余数据的争用。

您问题中的数据似乎不经常更新,因此最后的考虑不适用。

【讨论】:

    【解决方案2】:

    理论上说,您可以制作包含最少列集的表格,最多只有一个文本字段和 ID 的表格。

    实际上,在大多数情况下,如果它与同一个实体相关并且大多数 SQL 查询所有这些字段,那么您可以在一个表中完成所有操作。

    许多表会增加 cpu 时间来加入它,并且可能会大大增加 SQL 的复杂性。大型 SQL 很难维护。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-23
      • 1970-01-01
      相关资源
      最近更新 更多