创建一个 table,其中主键将来自两个不同的 table oracle 11g

Creating a table where the primary key will be from two different table oracle 11g

我有 3 个 table。架构如下:

员工(NID、姓名、薪水、职务、Phone、分支机构)

客户端(NID、名称、Insurance_type、Phone、地址、is_active、Pay_per_month、Start_year, End_year)

付款(NID,应付,应收)

支付 table 的主键将是 NID,它将继承自 Employee 和 Client table。如果我们合并 Employee 和 Client 表中的 NID 列,则所有 NID 都将是唯一的。有什么方法可以使 table 在 oracle 11g 中从客户端和员工 table 继承 NID?

这看起来不像是一个可行的设计。

执行此操作的标准方法是在 PAYMENT table 中为每个父项设置一个单独的外键,即:

Payment (NID, NID_Client, NID_Emp, Payable, Receivable)

其中 NID - PAYMENT 的唯一键 table

NID_Client 是 Client.NID 值

NID_Emp 是 Employee.NID 值

要添加 FK 约束:

alter table payment ADD CONSTRAINT FK_Payment_Emp
    FOREIGN KEY (NID_Emp) REFERENCES Employee(NID);

alter table payment ADD CONSTRAINT FK_Payment_Client
    FOREIGN KEY (NID_Client) REFERENCES Client(NID);