该表对mysql有好处吗?我希望将来可以灵活处理这种类型的数据存储。使用此表结构,您不能使用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的一些问题包括:
value
列必须为长VARCHAR。 使用EAV设计时,查询也非常复杂。 Magento是一个开放源代码的电子商务平台,广泛使用EAV,许多用户表示,如果需要自定义报告,它非常缓慢且难以查询。
为了保持联系,您应该将每个不同的属性存储在其自己的列中,并带有其自己的名称和适当的数据类型。
我在演示文稿Practical Object-Oriented Models in SQL和博客文章EAV FAIL中以及在我的书SQL Antipatterns: Avoiding the Pitfalls of Database Programming中写了更多有关EAV的内容。
关于mysql表结构建议?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8313090/