我有一个表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
如何正确和标准地实现它?
答案 0 :(得分:0)
注意:仅当'receiver_id`始终是医生或工人时才有效。
如果您将doctors
表格中的那些医生字段重命名为更通用的字段,那么只为工作人员和医生提供一张表格就足够了,还有一个额外的type
列将它们标记为一个或另一个。
然后,从payouts
表中,您将使用一个列,其中FK指向与工作人员和医生相关的这一个表。此外,receiver_type
表格中payouts
将是多余的。
在payouts
表中有两个单独的列会导致永久检查是否为空(NULL
),或检查类型并使用一个或另一个表,依此类推。简而言之,它几乎让你的生活变得复杂而没有任何好处。