我正在研究数据库(MySQL) - 汽车经销商。由于产品(汽车)具有很多功能和独特的价值(变速箱,型号,制造商......),我想知道如何为它创建一个设计良好的数据库。
我应该使用:
Table cars
columns -> id, name, manufacturer, model, gearbox...
或者:
Table cars
columns -> id, name, manufacturer_id, gearbox_id...
Table manufacturers
columns -> id, name
Table gearbox
columns -> id, name
我提到了许多独特的价值观,我认为一次又一次地存储它们并不好,但是如果我创建了很多表+将它们与链接表链接到产品表(汽车),那么将会有当我进行查询以获取所有值时,会有很多连接。
这些只是其中的一小部分,我需要为数据库中的每个产品存储更多值。
答案 0 :(得分:0)
这里有3个选项:
你可以将每辆车作为一个单独的表存放,然后有一个与变速箱等对应的行。这很糟糕,没有人这样做,不要这样做。
您可以将所有变速箱等数据序列化为json字符串并将它们放入您的车辆单元格中。这也很糟糕,有些人愚蠢地做到了这一点,但不是经常这样做。不要这样做。
你可以用正常的,好的方式做事,并用链接它们的外键为每个对象类实现单独的表。这是要走的路。