我想知道在这种情况下db设计应该是什么样子。
我想到的是每个实体的表格,如:
Engine
EngineDesign
ElectricalSystem
Drivetrain
etc.
但它看起来像很多桌子。我的想法是好还是过分?
动力传动系统怎么样?今天我们有8个齿轮,但只要制造商提供不同的东西,它就可以改变。
应该是这样的:
表(列)
DrivetrainId | 1st | 2nd | 3rd | etc.
或者
表(行)
DrivetrainId | Gears
1 | 1st
2 | 2nd
3 | 3rd
etc.
答案 0 :(得分:2)
您无法通过计算表来判断数据库设计的完整性。没有“太多表格”的正常形式,或“没有足够的表格”正常形式。也没有“太多列”的正常形式,或“没有足够的列”正常形式。
现在,,每个传动齿轮比有一列可能仍然可以达到5NF。那是因为它没有多个列,其值来自同一个域,这是一个问题。它有多个列,其值来自同一个域,具有相同的含义,这是一个问题。
显然,第8档和第1档具有不同的含义。实际上,您可能会认为它们来自不同的域。我的猜测是0.67不是1档的有效值,而4.85不是8号的有效值。当这些存储在不同的列中时,
当它们存储为行时,
答案 1 :(得分:-1)
我的第一直觉是使用属性表和汽车表做某事(我假设汽车?)
Attributes
AttributeId | AttributeCategory | AttributeDesc
Cars
CarId | AttributeId | AttributeValue
编辑:请参阅以下评论@ HLGEM的解释为什么在此示例中实体 - 属性 - 值表不是一个好主意。