这证明了多对多关系吗?



我正在为PC组件库存创建一个数据库。我得到组件,组件类型,计数(有多少个)和制造商。

我的问题主要是关于类型。为了解释清楚,让我们以硬盘为例。

Component: Hard Drive类型:SSD或SATA厂商:三星、惠普、WD

计数将根据您对前面信息的不同组合而有所不同。

由于我有许多组件(监视器,cpu,硬盘等),并且每个组件都有许多类型,这是否意味着我有多对多关系?

而且,每个制造商生产不同的组件,相应地,这些组件的类型也不同。这是否意味着我在制造商和类型之间有多对多的关系?

最后,我不明白我怎么能只有一个模型的类型。HD的类型与cpu或电池的类型不同!我是否应该将Type类拆分为每个组件的多个类?

谢谢!

首先,对于ComponentType的关系,我不认为是多对多的关系。它应该是一对多的关系,因为例如一个存储驱动器只能是SSD或HDD,而不能同时是两者。这里的业务逻辑是一个Type可以分配给多个Component,但每个Component只能分配一个Type

其次,您不需要在ManufacturerType之间直接建立关系。事实上,ManufacturerType的关系实际上是多对多的,但我们在这里有一个天然的桥梁实体,你猜它是;Component!一个Manufacturer可以生产许多Component,但是一个Component只能由一个Manufacturer生产。同样的道理也适用于实体ComponentType之间的关系。一个Component只能对应一个Type,而一个Type可以对应多个Component

最后,您不需要为数据存储或监视器或CPU或任何其他Component创建不同的Type类。共享单个Type类将完美地完成其工作。这样,您可以动态地添加与之关联的ComponentType,而无需手动添加新类。

最新更新