如何在同一个表的派生部分引用主键?

问题描述 投票:0回答:1

让我们考虑以下两个简化的表格:

CREATE TABLE payments
(
    id bigserial NOT NULL PRIMARY KEY,
    method int,
    method_name name,
    total numeric,
    payment_date timestamp without time zone,
    is_seccessful boolean,
    data jsonb
);
CREATE TABLE subscription_payments
(
    subscription_id int,
    parent_id bigint,

   CONSTRAINT pk_subscription_id FOREIGN KEY (subscription_id)
       REFERENCES subscriptions (id)
       ON DELETE RESTRICT
)
INHERITS (payments);

现在,如何创建

subscription_payments.parent_id
payments.id
的外键引用,其中它不会引用其他继承表?

换句话说,我如何参考

subscription_payments.id

database postgresql foreign-keys rdbms object-oriented-database
1个回答
0
投票

由于这是一个桥梁,您可以简单地参考付款,这将保证付款已完成

CREATE TABLE subscription_payments
(
    subscription_id int,
    parent_id bigint,
 primary key (subscription_id, parent_id),
   CONSTRAINT fk_subscription_id FOREIGN KEY (subscription_id)
       REFERENCES subscriptions (id)
       ON DELETE RESTRICT,
   CONSTRAINT fk_parent_id  FOREIGN KEY (parent_id )
       REFERENCES payments(id)
       ON DELETE RESTRICT
)
© www.soinside.com 2019 - 2024. All rights reserved.