如何使两个表引用数据库中的同一个对象?

How to make two tables refer to the same object in a database?

不好意思,请允许我解释一下。

我有一个table:医生,还有一个table:病人

Doctor 和 Patient 有相同的主键,'person_id'

病人也可以是医生,反之亦然,在这种情况下他们会有相同的 person_id

这是允许的吗? 我会在这些 table 之间使用什么样的关系? 我会允许两者的主键自动递增吗? 我将如何在 MySQL Workbench 中对此建模?

我觉得 DoctorPatientPerson 的子 类。如果 DoctorPatient 的实例之间的关系很重要,我会在那些 table 中使 person_id 成为对新 [=19] 的 foreign_key 引用=] 超类 table:

例如

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 ...
, ...
) ...

这只是一种可能的方法。如果没有关于问题的更多背景信息 space,我们无法给出明确的建议。