Мне нужно создать базу данных для отслеживания местоположения посылки.
В принципе, может быть 4 местоположения: на самолете, на корабле, в машине, в транзитном офисе.
Мне нужно иметь отдельные объекты для этих 4 мест, потому что у них всех есть несколько экземпляров каждого (например, много самолетов, много автомобилей)
Кроме того, каждый из этих 4 объектов управляется одним и только одним сотрудником (другим объектом).
Я создал ассоциативную сущность под названием job, в которой хранится информация о том, какой сотрудник работает в каждом из 4 мест, аналогично номеру рейса, который содержит идентификатор самолета с идентификатором пилота.
Я изучил атрибуты 4 локаций и обнаружил, что их можно отнести к автомобилям, являющимся супертипом, а самолет, корабль и офис - подтипом автомобиля.
будет уникальный атрибут location_id, который сообщает мне, находится ли он в самолете или офисе в супертипе, поэтому подтип наследует этот атрибут.
Мой вопрос заключается в том, можно ли сделать это в схеме таблиц, поскольку местоположения будут разделены на четыре разные таблицы, когда бы я ни ссылался на location_id (FK) из объекта задания, поскольку внешний ключ обычно ссылается только на один таблица, а не 4 таблицы в этом случае ..
СОТРУДНИК [ employee_id , имя сотрудника, пол, номер контакта, job_scope]
JOB [ job_id , (employee_id), (location_id)] * 1023 *
OFFICE [ location_id , office_id, адрес]
CAR [ location_id , vehicle_id]
САМОЛЕТ [ location_id , Vehicle_id, тип, без груза, вес]
КОРАБЛЬ [ location_id , vehicle_id, размер]