我的意思是:
FK1 -> 1FK2 -> 2PK
请注意,1FK2 是 PK 到 FK1,而 1FK2 是 FK 到 2PK。所以嵌套结构中的key是一个FK和一个PK。
一个例子:
--- Like an interface
CREATE TABLE q_content (
user_id SERIAL PRIMARY KEY, ---);
---- tables that refer to it
CREATE TABLE questions (
user_id SERIAL
references q_content(user_id) ---);
CREATE TABLE removed_questions (
user_id SERIAL
references questions(user_id) ---);
最佳答案
是的,列可以是其表的主键,也可以是父表的外键。
但是,在这种情况下,您不需要使用 SERIAL
作为 questions.user_id
和 removed_questions.user_id
的数据类型。 SERIAL
数据类型隐式创建一个新的序列对象,您不需要它,因为这些主键必须仅包含它们引用的表中已存在的值。
此外,这与您的问题无关,但我根本不会定义 removed_questions
表。这应该是 questions
表中的属性列。
关于postgresql - Postgres : Are Nested Foreign Keys allowed?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1309817/