如果我对我的数据库设计正确,请向您征求意见。我正在用 Django 编写一个应用程序(它有自己的 ORM),它将使用 PostgreSQL。我的期望是,我将指定:
- 类型(例如:汽车、摩托车、船……)
- 制造商(例如:本田、宝马、奥迪……)
- 型号(例如:CBR1000、A6、A8、535i、...)
- 车辆 - 所有其他信息,如 VIN、价格、...
所以我认为最好的方法是让 Makes 独一无二。我不知道,如何处理Type。我认为最好的方法是在模型中使用类型的外键 - 因为例如本田可以生产汽车和摩托车。所以通过Model我们可以找到,它是什么车型。
我想制作一个网络表单过滤器(某种三个链接的下拉菜单),用户将在其中选择一个Type,然后它将过滤掉该选定类型的所有Makes。然后在另一个下拉列表中,他将选择一个品牌,在第三个下拉列表中,将显示该选择中可用的所有模型。类似于 Copart 的东西 - 网页右侧的车辆查找器https://www.copart.com/vehicleFinder/
我希望这是有道理的,我已经创建了一个这样的模式,我不只是确定它是否可用并且它是正确的。这里是:
链接到编辑器:https ://dbdesigner.page.link/gS62T3GYPth2TAAbA
非常感谢您的任何建议!
为什么“类型”必须是一个单独的表,而不仅仅是“模型”上的枚举?然后,当用户搜索任何类型(通过下拉菜单或其他方法)时,它只是模型 (
... where type = ANY( VALUES ('BOAT'), ('MOTORBIKE')) ...
) 上的过滤器。