我有一家汽车销售店。在我的店里,我销售多种交通工具,例如汽车和船只。我想跟踪销售情况。
我的车辆具有以下属性:
- 在(日期)到达商店
- 牌
- 模型
- 颜色
- 类型(是汽车还是船)
船还有其他一些特殊属性:
- 注册表
- 容量
- 占地面积
汽车还有其他属性:
- 注册表
- 座位
我的订单具有以下属性
- 车辆(应该与一些相关的车辆相关
- 合同日期
- 价值
- 买家 ID 号(是的,可以为买家数据添加数据结构)。
我从来没有两辆相同的车,因为每辆车都与另一辆车完全不同(即使它具有相同的品牌/颜色/型号),我不是在卖饼干。
我如何在 SQL 关系数据库中表示它?
订单如何表达?
特别是我试图理解它在 SQLAlchemy 中是如何工作的。
您的问题通常过于宽泛,不适合在这里发帖,但我会列出一些可以帮助您入门的内容。
车辆可以是船或汽车。一个很好的起点是想想用什么来识别车辆?由于我不了解您的业务,因此我假设存在某种类型的 vehicle_id,请注意,这可以是属性的组合:
如果你想要类型安全的子类型(以防止有人在 car 表中添加一条船),你可以在 vehicle 表中添加一个超级键:
一艘船可以表示为:
和汽车类似的:
由于 registry 是 car 和 boat 的属性,您可能会考虑将该属性添加到 vehicle。
订单可以表示为(我假设这是一个可用于识别订单的 order_id):
这只是一个粗略的草图,可能充满了错误的假设。我将从确定涉及的表开始。完成后,开始考虑用什么标识每个表中的行。