CREATE TABLE subscription (
magazine_id bigint,
user_id bigint,
PRIMARY KEY (magazine_id, user_id)
);
CREATE TABLE delivery (
magazine_id bigint,
user_id bigint,
FOREIGN KEY (subscription) REFERENCES subscription (magazine_id, user_id)
);
特定のサブスクリプションを指定して配信をクエリする良い方法は何ですか? PRIMARY KEY (magazine_id, user_id)
次のようにクエリできるように、列名と対応する外部キーを割り当てる方法はありますか:
SELECT *
FROM subscription
JOIN delivery ON (delivery.subscription_fk = delivery.subscription_pk);
注:次のように書くことができます:
SELECT *
FROM subscription
JOIN delivery ON (delivery.magazine_id = subscription.magazine_id
AND delivery.user_id = subscription.user_id);
ただし、これを達成するためのより冗長な方法があるという印象を受けています。