我应该有一个主设备表还是多个属性表?

时间:2018-03-01 03:11:15

标签: mysql database-design

我正在尝试设计的设备数据库中存在以下情况。我目前有3个表格,详细介绍了3种不同类型的设备和1个表格,以保持所有3个表格中所有ID的独特性。如下:

theArray

将所有这些表组合成一个包含150列的主设备表是否更好?或者将他们分成小组,记住以下内容:

  • 管道,容器和储罐表中的所有字段都与1:1关系,并且都依赖于主键。

从引用stackoverflow社区关于此主题的其他帖子...

MySQL: multiple tables or one table with many columns?

由于主键和列之间的1:1关系,这个场景的最佳设计似乎是一个包含许多列的大型表,但我还不确定并希望其他人使用#c关于此事的想法。

2 个答案:

答案 0 :(得分:1)

一些一般性意见,评论时间过长:

EQUIPMENT_ID         VARCHAR(30) -- There's almost certainly no good reason for this not to be an auto-incrementing integer

STATUS               VARCHAR(1) -- CHAR(1) uses less memory and achieves the same thing.

OUTSIDE_DIAMETER     FLOAT -- It seems more plausible to me that this would be a DECIMAL, and likewise for all the other FLOATs

最后,如果您决定切换到EAV模型,请考虑为不同的数据类型设置单独的表,因此所有DECIMAL类型的东西都放在一个表中,所有字符串类型的东西放在另一个表中。

答案 1 :(得分:1)

这里有一项相关的技术。它被称为类表继承。还有更多细节Cartesian prod