在Postgre中设计多个1对1关系的最佳方法是什么

时间:2018-02-15 15:36:34

标签: sql database postgresql database-design

我想知道在Postgre中设计这种关系是否有更好的方法:

Database 1:1 relationship

基本上,我有一些实体是EntityAEntityBEntityC。我将在实体和其他东西之间有很多其他关系(在这种情况下比如Comment)所以我有这个通用Entity来定义它链接到的Entity类型。 / p>

例如,如果我们将EntityA链接到注释,则Entity条目将如下所示: type: EntityA entity_a_id: x entity_b_id: null entity_c_id: null

有没有更好的方法来设计它?

2 个答案:

答案 0 :(得分:1)

这似乎非常适合Table Inheritance功能

Browser

这样,实体类型不包含其他类型的列

答案 1 :(得分:0)

实体有多么不同?

为什么不

CREATE TABLE Entity
(
    EntityId int,
    EntityType enum(A, B, C),
    FieldValue varchar(255)
) 

或者如果字段值明显不同并且在单个列中没有意义,

CREATE TABLE Entity
(
    EntityId int,
    EntityType enum(A, B, C),
    FieldValueX varchar(255),
    FieldValueY varchar(255),
    FieldValueZ varchar(255)
)