PostgreSQL - 使用INHERITS而不是引用来建模OOP继承的优点和缺点?

时间:2016-09-22 22:42:07

标签: sql postgresql relational-database rdbms

使用参考文献:

CREATE TABLE Users (
    id       int     primary key,
    name     text
);

CREATE TABLE Moderators (
    role     int,
    userid   int references Users(id)
);

使用INHERITS:

CREATE TABLE Users (
    id       int     primary key,
    name     text
);

CREATE TABLE Moderators (
    role     int
) INHERITS (Users);

除了查询语法的差异外,这两者的性能,可扩展性是否存在差异?

1 个答案:

答案 0 :(得分:2)

PostgreSQL中的继承是非常古老的人工制品。在这些日子里,PostgreSQL是关系数据库,它不是OOP数据库。

如果你的模型只是OOP,那么你可能不会碰到一些不需要的文物 - 但是当你尝试混合两种模型时,你可以触摸一些问题 - 参考完整性约束不能很好地支持继承,也许你可以找到一些其他的陷阱。不使用OOP方式,不是首选 - 它只是历史人工制品。