我想在 MySQL 数据库中存储各种发动机的数据,其中包括活塞发动机和转子发动机。
在 OO 语言中,我可以创建和扩展 Engine
父类(super class)以获得 PistonEngine
和 RotaryEngine
子类。
PistonEngine
子类将包含诸如 CylinderNo、PistonBore 和 PistonStroke 等属性。
RotaryEngine
子类将包含 RotorThickness 和 RotorDiameter 等属性。
在 MySQL 中,虽然我可以分别为活塞和旋转发动机创建两个单独的表,但我更愿意维护一个 EngineType 字段作为发动机数据的一部分,并存储两个发动机共有的所有数据在单个表中键入。
如何设计我的数据库以尽可能避免数据冗余?
最佳答案
在这种情况下,我会创建四个表。
一个叫做 EngineTypes,它只有你的引擎类型的 id/value 对 1个旋转 2活塞
一个称为引擎,其中包含与活塞发动机和转子发动机相关的信息。它会有一个包含引擎类型 ID 的列。
一个名为 RotaryEngineDetails 的表包含所有转子发动机特定数据。它会有一个指向您的引擎表的外键。
一个名为 PistonEngineDetails 的表,其中包含所有活塞发动机特定数据..
关于mysql - 抽象的概念与 MySQL 中的表相关吗?如果是这样,我该怎么做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1478599/