gpt4 book ai didi

mysql表结构建议?

转载 作者:可可西里 更新时间:2023-11-01 06:32:09 26 4
gpt4 key购买 nike

这张表对mysql有用吗?我想在未来为这种类型的数据存储提供灵 active 。使用此表结构,您不能使用 PRIMARY KEY,而是使用索引 ...

我是否应该更改表的格式以包含标题 - 主键、宽度、长度、空格、耦合 ...

ID_NUM  Param   Value
1 Width 5e-081
1 Length 12
1 Space 5e-084
1 Coupling 1.511
1 Metal Layer M3-0
2 Width 5e-082
2 Length 1.38e-061
2 Space 5e-081
2 Coupling 1.5
2 Metal Layer M310

最佳答案

不,这是关系数据库的糟糕设计。这是 Entity-Attribute-Value 的示例设计。它很灵活,但它打破了关系数据库的大多数规则。

在深入了解 EAV 设计作为灵活数据库的解决方案之前,请阅读以下故事:Bad CaRMa .

更具体地说,EAV 的一些问题包括:

  • 如果不查询它们,您不知道任何给定 ID_NUM 存在哪些属性。
  • 您不能使任何属性成为强制性的,相当于 NOT NULL。
  • 您不能使用数据库约束。
  • 你不能使用 SQL 数据类型; value 列必须是长 VARCHAR。
  • 特别是在MySQL中,每个VARCHAR都存储在自己的数据页中,所以这是非常浪费的。

当您使用 EAV 设计时,查询也会非常复杂。开源电商平台Magento广泛使用EAV,很多用户表示速度很慢,如果需要自定义报表,查询起来也很困难。

要成为关系型的,您应该将每个不同的属性存储在其自己的列中,并使用其自己的名称和适当的数据类型。

我在我的演讲中写了更多关于 EAV 的文章 Practical Object-Oriented Models in SQL在我的博文中EAV FAIL ,在我的书中,SQL Antipatterns Volume 1: Avoiding the Pitfalls of Database Programming .

关于mysql表结构建议?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8313090/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com