不相交的ERD关系

时间:2016-05-01 02:01:21

标签: database database-design relational-database entity-relationship entity-relationship-model

我对ERD概念有点困惑。情况如下。

有一个公寓大楼(它有许多公寓;每个公寓都有设备 - 如空调,冰箱等)。我想将它们与“维护公司”实体联系起来。

以下是我目前的方式

MaintenanceCompany(M_ID(PK), .....)
MaintenanceDetail(M_Detail_ID(PK), M_ID(FK), M_Type, .....)
Apartment_Maintain(M_Detail_ID(PK/FK), Apartment_ID)
Complex_Maintain(M_Detail_ID(PK/FK), Complex_ID)
Equipment_Maintain(M_Detail_ID(PK/FK), Equ_ID) 

我在MaintenanceDetail和Apartment_Maintain,Complex_Maintain和Equipment Maintain之间做了“不相交”的重叠。 这是对的吗?

如果是这样,我是否需要将关系(线)从sup-entity(如Apartment_Maintain)连接回他们的关联实体(如Apart)?

1 个答案:

答案 0 :(得分:0)

目前尚不清楚您提议的实体是什么。什么是“Apartment_Maintain”?等

根据您的描述,我在数据库设计方面的开始将是:

complex (id (pk), name, ...)
apartment (id (pk), complex_id (fk), ...)
maintenance_company (id (pk), name, ...)
equipment (id (pk), apartment_id (fk), maintenance_company_id (fk), ...)

也就是说,你有复合体。你有公寓。每间公寓都位于一栋综合大楼内,因此有一个M:1的关系。你有Maintenance_company的。你有设备。每件设备都在一个公寓里,所以这是一个M:1的关系。每件设备都由一个Maintenance_company维护,因此这是另一个M:1关系。

我可以想象需要保留额外数据的要求。例如,假设任何Maintenance_company都可以维护任何设备,并且一个公寓中的设备可能由不同的Maintenance_companies维护。也许Complexes与Maintenance_companies签订了合同,因此,如果复合A与Maintenance_companies X和Y签订合同,那么只有X和Y可以维护复杂A中的设备。或者公司可能只维护某些类型的设备,如公司可能保持冰箱而不是空调,你需要跟踪每家公司的情况以及每件设备的含量。等