DB问题对于汽车知识渊博

时间:2011-03-07 01:39:15

标签: database database-design data-modeling

我不熟悉汽车,我正在研究数据模型,以支持与汽车相关的各种信息。

  • 以下是汽车的示例 模型 :2011 Nissan Sentra
  • 以下是汽车的示例 trim :2011 Nissan Sentra 2.0

“太阳屋顶”等工厂选项是“模型”还是“修剪”的属性?似乎模型具有可能的工厂选项的有限列表,但是通过包含或排除某些工厂选项来定义修剪。

我试图从数据建模的角度理解工厂选项与模型和修剪的关系。

想法?

3 个答案:

答案 0 :(得分:1)

我个人认为这是修剪的属性。您的型号将永远是“2011日产Sentra”。您的装饰可能是“2011 Nissan Sentra Super Turbo Mode”,然后超级涡轮增压模式可能包括也可能不包括天窗属性。

或者可能不是,模型支持太阳屋顶是有意义的,因此如果模型支持它,每个修剪都可以拥有它。但通常太阳能屋顶也可以安装在汽车上。

我认为您需要深入了解数据,看看它是如何工作的。但我会选择 trim

答案 1 :(得分:0)

它们不是模型选项的集合吗?

我看到它的方式,使用模型的某个选项集合并不表示修剪级别,但修剪级别总是需要模型。它是一种单向关系,即使可能存在某种推断,您也可以应用于选项设置。即:Sux 2000 LX型号总是有一个6缸发动机,而LE则没有。你可以推断6缸发动机是LX车型,但并不适用于所有车型。

答案 2 :(得分:0)

根据您的描述,我认为您可能至少需要3个关系:

  • R1:Model-TrimLevel。定义哪些模型可用的修剪级别。许多:许多(即每个TrimLevel在许多模型上都可用,每个模型在许多TrimLevels中都可用)
  • R2:TrimLevel-Option。定义每个修剪级别中包含的选项。再许多:很多(每个TrimLevel包含许多选项,每个选项包含在许多TrimLevels中)
  • R3:模型选项。定义哪些模型可用的选项。许多:许多(每个模型都有许多选项,每个选项在许多模型上都可用)。

假设我理解你的问题,我怀疑R2和& R3是必要的而不是/或:

  • R2涵盖了通过选择给定的修剪级别自动包含选项的情况
  • R3允许使用修剪级别选择选项。

例如:乘坐福特嘉年华(Model)GL(TrimLevel)。标准配置为合金轮毂(R2),但不包括皮革内饰。然而,如果他们这样选择,买家可以添加皮革选项。当然,前提是皮革是嘉年华(R3)的可选选项。

从那里出发将真正取决于您的要求。您可能需要对关系进行一些查询(例如,如果某人选择了已经包含在他们选择的修剪级别中的选项会发生什么?)。

您可能还需要在关系中引入属性。例如,皮革通常是成本选择。在嘉年华,它可能是1000英镑。在S-max上它是1200英镑。这意味着您需要将价格作为R3的额外属性来捕获。同样,在TrimLevel中包含选项可以免费或折扣成本。这意味着R2上的属性。

一般而言,关系复杂性取决于您需要表达多少。这是一个有趣的问题,可能会变得非常复杂。如果您有兴趣,可以查看Feature Modelling。它涵盖了更广泛意义上的这种配置问题。 (otoh,值得一提的是,你可能不需要上面简单的3种关系)。

第h