Database design 数据库表布局 在建立MySQL数据库时,请考虑我有一个名为:的产品表(TBLCAR)。 轿跑车 轿车 小型货车 卡车

Database design 数据库表布局 在建立MySQL数据库时,请考虑我有一个名为:的产品表(TBLCAR)。 轿跑车 轿车 小型货车 卡车,database-design,Database Design,以及(1980年代)配件清单: 月台 镀铬车轮 窗色 以及一系列选项: 油漆颜色 内饰面 内饰颜色 短跑中的蓝光播放器 现在,让我们设置一些基本规则: Coupe可从任何附件或选件中进行选择 轿车可以选择任何配件,但不提供蓝光选项 迷你面包车带有车窗色调作为附件,可从所有选项中进行选择 卡车只有镀铬车轮、着色配件和油漆选项 我需要一个tblCar设置,这一点很清楚。但是如何管理tblAccessories和tblOptions表,而不复制行项目本身呢。让我们假设我只想要附件和选装件的

以及(1980年代)配件清单:

  • 月台
  • 镀铬车轮
  • 窗色
以及一系列选项:

  • 油漆颜色
  • 内饰面
  • 内饰颜色
  • 短跑中的蓝光播放器
现在,让我们设置一些基本规则:

  • Coupe可从任何附件或选件中进行选择
  • 轿车可以选择任何配件,但不提供蓝光选项
  • 迷你面包车带有车窗色调作为附件,可从所有选项中进行选择
  • 卡车只有镀铬车轮、着色配件和油漆选项
我需要一个tblCar设置,这一点很清楚。但是如何管理tblAccessoriestblOptions表,而不复制行项目本身呢。让我们假设我只想要附件和选装件的说明信息,而不是价格,因为安装它们的汽车肯定会有不同


tblaccessorielper是否会出现这种情况,其中包含一个carID和accessoryID的值列表,这两个值应该在其中相遇,还是有一个更好的方法?

您会有连接表,将两者连接在一起

tblCar
tblAccessories
tblOptions 
tblCarAccessories
tblCarOptions
如果使用“tbl”命名表,则还有另一种命名约定使用前缀“jct”。我会给这些表命名的

Car
Accessory
Options
CarAccessory
CarOptions
(使用单数形式命名表,但“options”是特殊的,因为“option”在某些DBMS中可能是保留/特殊字)