正确的数据库结构表关系(MySQL)

时间:2018-01-05 15:43:37

标签: mysql database

我有一个表payouts,其中包含reciever_id列,其中必须链接到另一个 两个 表的主键:{{1} }或workers,由doctors确定。payouts。 据我所知,这种结构有点不对劲。

最好像这样制作reciever_type吗?

payouts

或者将表格.... `reciever_worker` INT(10) UNSIGNED DEFAULT NULL, `reciever_doctor` INT(10) UNSIGNED DEFAULT NULL .... workers合并到一个表格中。

表的结构:

doctors

如何正确和标准地实现它?

1 个答案:

答案 0 :(得分:0)

注意:仅当'receiver_id`始终是医生或工人时才有效。

如果您将doctors表格中的那些医生字段重命名为更通用的字段,那么只为工作人员和医生提供一张表格就足够了,还有一个额外的type列将它们标记为一个或另一个。

然后,从payouts表中,您将使用一个列,其中FK指向与工作人员和医生相关的这一个表。此外,receiver_type表格中payouts将是多余的。

payouts表中有两个单独的列会导致永久检查是否为空(NULL),或检查类型并使用一个或另一个表,依此类推。简而言之,它几乎让你的生活变得复杂而没有任何好处。