许多表日志关系

时间:2014-09-21 07:53:54

标签: mysql database relational-database erd

我有关于我的ERD的问题......

ERD CASE

我有3个具有不同属性的用户表。每个用户连接到house表。 然后房子表有很多日志。我的问题是,如何知道与用户相关的日志取决于用户类型

1 个答案:

答案 0 :(得分:0)

添加一个USER表,将USER_x表桥接到HOUSE:

-- [id] is a type x user and ...
USER_x(id,...) PK (id) FK (id) REFERENCES USER (id)

-- [id] is a user
USER(id) PK (id)

-- house [id] is used by [USER_id] and ...
HOUSE(id,USER_id,...) PK (id) FK (USER_id) REFERENCES USER (id)

有多种方法可以约束这种设计,以便USER完全具有USER_x ID的不相交联合。例如,USER类型鉴别器列,其值是x的各种值。 (还有其他类型的设计。例如,每个USER_x都有一个可以为空的USER外键。有自己的约束。例如检查只有一个这样的FK不是NULL。)

搜索Stackoverflow SQL文章重新子表,子类型,继承和外键。例如thisthis

Here's how to constraint this kind of situation without triggers.