【发布时间】:2019-10-28 18:16:22
【问题描述】:
我在设计我的数据库的一部分以及它们之间的关系时遇到了一些麻烦。
我的实体是:
- 车辆 -> 1:1 -> 价格
- 自行车 -> 1:1 -> 价格
选项 A:
创建 2 个表
车辆表
+----------------+---------+
| NAME | TYPE |
+----------------+---------+
| Id | uuid |
| brand | varchar |
| model | varchar |
| attribute1 | varchar |
| price | float |
| discount float | |
| locale varchar | |
+----------------+---------+
自行车桌
+----------------+---------+
| NAME | TYPE |
+----------------+---------+
| Id | uuid |
| vendor | varchar |
| attribute1 | varchar |
| attribute2 | varchar |
| attribute3 | varchar |
| price | float |
| discount float | |
| locale varchar | |
+----------------+---------+
选项 B
创建 3 个表
车辆表
+----------------+---------+
| NAME | TYPE |
+----------------+---------+
| Id | uuid |
| brand | varchar |
| model | varchar |
| attribute1 | varchar |
+----------------+---------+
自行车桌
+----------------+---------+
| NAME | TYPE |
+----------------+---------+
| Id | uuid |
| vendor | varchar |
| attribute1 | varchar |
| attribute2 | varchar |
| attribute3 | varchar |
+----------------+---------+
价格表
+----------------+-------+
| NAME | TYPE |
+----------------+-------+
| vehicle_id | FK |
| bike_id | FK |
| price | float |
| discount float | |
| locale varchar | |
+----------------+-------+
选项 C
创建 4 个表
车辆表
+----------------+---------+
| NAME | TYPE |
+----------------+---------+
| Id | uuid |
| brand | varchar |
| model | varchar |
| attribute1 | varchar |
+----------------+---------+
车辆价格表
+----------------+-------+
| NAME | TYPE |
+----------------+-------+
| vehicle_id | FK |
| price | float |
| discount float | |
| locale varchar | |
+----------------+-------+
自行车桌
+----------------+---------+
| NAME | TYPE |
+----------------+---------+
| Id | uuid |
| vendor | varchar |
| attribute1 | varchar |
| attribute2 | varchar |
| attribute3 | varchar |
+----------------+---------+
自行车价格表
+----------------+-------+
| NAME | TYPE |
+----------------+-------+
| bike_id | FK |
| price | float |
| discount float | |
| locale varchar | |
+----------------+-------+
注意:我确实简化了车辆和自行车表(我不能将它们合并到一个表中,例如“产品”)
从性能和模式的角度来看,我们将成为最佳设计?
【问题讨论】:
标签: database postgresql algorithm design-patterns