postgresql中的多个引用

vd2z7a6w  于 2021-08-01  发布在  Java
关注(0)|答案(1)|浏览(257)

这个问题在这里已经有答案了

如何在数据库中表示继承(8个答案)
10个月前关门了。
我在用postgresql实现这个设计时遇到了一个问题
我需要什么
用户
身份证件
名称
用户名
...

身份证件
名称
链接
你是公共的吗
...
现在我需要Map到这个
信息
身份证件
发件人\u id
接收器id
...
发件人既可以是用户,也可以是组。对于收件人,这是我的代码

CREATE TABLE "table_a" (
    "id" uuid DEFAULT uuid_generate_v4 (),
    "name" varchar(32),
    "a_val" int,
    PRIMARY KEY (id)
);

CREATE TABLE "table_b" (
    id uuid DEFAULT uuid_generate_v4 (),
    "name" varchar(32),
    "b_val" int,
    PRIMARY KEY (id)
);

CREATE TABLE "table_z" (
    "id" serial PRIMARY KEY,
    "p_row" uuid
);

ALTER TABLE "table_z" ADD FOREIGN KEY ("p_row") REFERENCES "table_a"("id");
ALTER TABLE "table_z" ADD FOREIGN KEY ("p_row") REFERENCES "table_b"("id");
6tr1vspr

6tr1vspr1#

以postgresql为例,在一个表中对用户和组进行建模。
如有必要,添加 boolean 属性 is_group 或者类似的。
check约束可以保证适当的列是 NOT NULL 对于用户和组。

相关问题