【发布时间】:2014-02-16 17:49:47
【问题描述】:
假设你有以下架构。
用户有很多部门,(fk user_I'd)
每个部门 HV 许多办公室(fk department_I'd)
每个 office HV 许多事务(遇到 s)(fk office_id)
现在的问题是,如果我想获取用户的所有遭遇,我将需要搜索用户部门 s 中办公室的所有 encoutet。
你不觉得有很多连接吗?
但是,如果我在遇到表中包含树的所有外键?那我就可以select * from encounters where user_I'd = X
然而,这让我的表格看起来很丑陋,并且包含很多我想要的父母的重复数据!
所以我的问题是,在这种情况下最佳做法是什么? 更多或更少的 fk 并使用连接?
【问题讨论】:
-
你的商业模式中遇到了什么?我认为答案可能还取决于您需要请求用户的遭遇与办公室的遭遇的次数。如果你只关心用户的遭遇,那么你应该改变你的模型来减少这个请求的连接。如果这是一个罕见的请求,则可以使用最慢的请求以获得更清晰更自然的设计。
-
dan ehr 系统,遭遇是通常发生在办公室内的医患互动——但一次遭遇可以有很多医生.. 为了举例,我保持简单
标签: mysql database database-design backbone-relational