Могу ли я иметь внешний ключ, относящийся к первичному ключу двух разных таблиц? - PullRequest
0 голосов
/ 27 апреля 2018

Справочная информация: клиентом является компания, предоставляющая как услуги по ремонту дома, так и услуги бронирования номеров в отеле.

Вот таблицы, которые я написал на основе требований:

RoomBookingService{
Service_ID(PK)
Cost
Start_Date
End_Date
Room_ID
}

HomeRepairmentService{
Service_ID(PK)
Repair_Type
Staff_ID
date_Of_Repair
}

Invoice{
Invoice_ID(PK)
Service_ID(FK) REFERENCES both HomeRepairmentService.Service_ID and RoomBookingService.service_ID
Customer_ID
}

Payment{
Payment_ID(PK)
Invoice_ID
Payment_method
}

Если я ошибаюсь, каким будет решение, чтобы исправить это?

Кроме того, мне интересно, понадобится ли мне отдельная таблица платежей и счетов для этих двух разных служб, поскольку эти две службы содержат уникальные атрибуты сами по себе.

1 Ответ

0 голосов
/ 27 апреля 2018

Способ сделать это - иметь таблицу Service с одним столбцом, Service_ID. RoomBookingService, HomeRepairmentService и Invoice должны иметь Service_ID в качестве внешнего ключа, таблицу referencinf Service.Service_ID.

...