首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >mysql表结构建议?

mysql表结构建议?
EN

Stack Overflow用户
提问于 2011-11-29 23:09:54
回答 5查看 4.4K关注 0票数 8

这个表对mysql有什么好处吗?我想让这种类型的数据存储在未来变得灵活。在这种表结构中,您不能使用主键,而可以使用索引...

我是否应该将表格的格式更改为具有标题-主键、宽度、长度、空格、耦合...

代码语言:javascript
运行
复制
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
EN

Stack Overflow用户

回答已采纳

发布于 2011-11-29 23:39:00

不,对于关系数据库,这是一个糟糕的设计。这是Entity-Attribute-Value设计的一个例子。它很灵活,但它打破了关系数据库的大部分规则。

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

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

在不查询任何给定constraints.

  • You的情况下,您无法知道任何给定VARCHAR.

  • Particularly存在哪些属性。

  • 您无法将任何属性设置为强制属性,等同于NOT NULL。

  • 您不能使用数据库value不能使用MySQL数据类型;VARCHAR列必须是MySQL中的long VARCHAR,每个VARCHAR都存储在其自己的数据页上,因此这是非常浪费的。

当您使用EAV设计时,查询也非常复杂。Magento,一个开源的电子商务平台,广泛使用EAV,许多用户说,如果你需要自定义报告,它非常慢,很难查询。

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

我已经在我的presentation Practical Object-Oriented Models in SQL和我的博客文章EAV FAIL以及我的书SQL Antipatterns: Avoiding the Pitfalls of Database Programming中写了更多关于EAV的内容。

票数 11
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8313090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档