我对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)?
答案 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中的设备。或者公司可能只维护某些类型的设备,如公司可能保持冰箱而不是空调,你需要跟踪每家公司的情况以及每件设备的含量。等