我正在为PC组件库存创建一个数据库。我得到组件,组件类型,计数(有多少个)和制造商。
我的问题主要是关于类型。为了解释清楚,让我们以硬盘为例。
Component: Hard Drive类型:SSD或SATA厂商:三星、惠普、WD
计数将根据您对前面信息的不同组合而有所不同。
由于我有许多组件(监视器,cpu,硬盘等),并且每个组件都有许多类型,这是否意味着我有多对多关系?
而且,每个制造商生产不同的组件,相应地,这些组件的类型也不同。这是否意味着我在制造商和类型之间有多对多的关系?
最后,我不明白我怎么能只有一个模型的类型。HD的类型与cpu或电池的类型不同!我是否应该将Type类拆分为每个组件的多个类?
谢谢!
首先,对于Component
和Type
的关系,我不认为是多对多的关系。它应该是一对多的关系,因为例如一个存储驱动器只能是SSD或HDD,而不能同时是两者。这里的业务逻辑是一个Type
可以分配给多个Component
,但每个Component
只能分配一个Type
。
其次,您不需要在Manufacturer
和Type
之间直接建立关系。事实上,Manufacturer
和Type
的关系实际上是多对多的,但我们在这里有一个天然的桥梁实体,你猜它是;Component
!一个Manufacturer
可以生产许多Component
,但是一个Component
只能由一个Manufacturer
生产。同样的道理也适用于实体Component
与Type
之间的关系。一个Component
只能对应一个Type
,而一个Type
可以对应多个Component
。
最后,您不需要为数据存储或监视器或CPU或任何其他Component
创建不同的Type
类。共享单个Type
类将完美地完成其工作。这样,您可以动态地添加与之关联的Component
和Type
,而无需手动添加新类。