逻辑模型 mySQL 中的依赖项
Posted
技术标签:
【中文标题】逻辑模型 mySQL 中的依赖项【英文标题】:Dependencies in a logical model mySQL [closed] 【发布时间】: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 【参考方案1】:在大多数数据库中,根据更新频率在第二个表中分离属性并没有特别的优势。
分离属性有正当理由:
您可能希望在单独的表中与 PII(隐私)相关的属性来控制访问。 您可能希望将不常用的属性放在单独的表中,以减少为大多数查询读取的数据量。 如果附加表是可选的,那么您可以通过在第二个表中没有行来减少数据大小。 如果您有非常易失性数据且更新非常频繁(认为每秒有很多),那么您可能需要分离出这些列以减少对其余数据的争用。您问题中的数据似乎不经常更新,因此最后的考虑不适用。
【讨论】:
【参考方案2】:理论上说,您可以制作包含最少列集的表格,最多只有一个文本字段和 ID 的表格。
实际上,在大多数情况下,如果它与同一个实体相关并且大多数 SQL 查询所有这些字段,那么您可以在一个表中完成所有操作。
许多表会增加 cpu 时间来加入它,并且可能会大大增加 SQL 的复杂性。大型 SQL 很难维护。
【讨论】:
以上是关于逻辑模型 mySQL 中的依赖项的主要内容,如果未能解决你的问题,请参考以下文章