【发布时间】:2011-12-05 01:34:27
【问题描述】:
我需要实现一个数据库来跟踪包裹的位置。
基本上可以有 4 个位置,即在飞机上、在船上、在汽车上、在中转办公室。
我需要为这 4 个位置创建单独的实体,因为它们都有多个实例(例如,许多飞机、许多汽车)
此外,这 4 个实体中的每一个都由一个且只有一个员工(另一个实体)管理。
我创建了一个名为 job 的关联实体,它存储有关在 4 个位置中的每个位置工作的员工的信息,类似于包含飞机 ID 和飞行员 ID 的航班号。
我检查了4个地点的属性,发现它们可以分为car是超类型和飞机,船和办公室是汽车的子类型。
会有一个 location_id 的唯一属性,它告诉我它是在飞机上还是在超类型中的办公室,因此子类型将继承此属性。
我的问题是在表格设计中,由于位置将被分成四个不同的表格,每当我从工作实体中引用 location_id(FK) 时,是否仍然可以这样做,因为外键通常只链接到一个在这种情况下,表而不是 4 个表..
EMPLOYEE [employee_id、employee_name、性别、contact_number、job_scope]
工作 [job_id, (employee_id), (location_id) ]
OFFICE [location_id、office_id、地址]
CAR [location_id,vehicle_id]
AEROPLANE [location_id, vehicle_id, type, unladen_weight ]
SHIP [location_id,vehicle_id,尺寸]
【问题讨论】:
-
我们这里好像有点误会,我的错。请参阅下面的更新答案。
标签: database-design relational-database