Мне кажется, что Doctor
и Patient
являются подклассами Person
. Если важно иметь связь между экземплярами Doctor
и Patient
, я бы сделал в этих таблицах person_id
ссылку на иностранный ключ для новой таблицы суперкласса person
:
например,
CREATE TABLE `person`
( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT 'PK person.id'
, ...
) ...
CREATE TABLE `doctor`
( person_id BIGINT PRIMARY KEY COMMENT 'PK, FK ref person.id'
, ...
, CONSTRAINT FK_doctor_person FOREIGN KEY person_id REFERENCE person (id)
ON UPDATE CASCADE ...
, ...
) ...
CREATE TABLE `patient`
( person_id BIGINT PRIMARY KEY COMMENT 'PK, FK ref person.id'
, ...
, CONSTRAINT FK_patient_person FOREIGN KEY person_id REFERENCE person (id)
ON UPDATE CASCADE ...
, ...
) ...
Это только один из возможных подходов. Без большего контекста о проблемном пространстве, какие проблемы мы пытаемся решить, мы не можем дать окончательную рекомендацию.