如何避免"独占弧",几个表对一个表有FK

时间:2014-09-28 05:17:13

标签: sql postgresql

我不熟悉图表工具或ascii艺术,所以这里是我手绘的图表:

badly drawn diagram

简而言之,我可以将其简单地描述为一个寻宝者。游戏有几个目标,玩家可以尝试目标,评论目标,分享提示,共享图像等。每个动作都有不同的模式(尝试有一个verify_flag,一个评论有comment_text,一个图像有一个image_url等等。)

在我的应用中,在“目标”信息中心,我想显示该目标的活动Feed。我怎样才能做到最好?

对于错误绘制的图表中描述的模式,我在想这样的事情:

SELECT * FROM activities
LEFT OUTER JOIN images on images.activity_id = activities.activity_id
LEFT OUTER JOIN comments on comments.activity_id = activities.activity_id
LEFT OUTER JOIN links on links.activity_id = activities.activity_id
LEFT OUTER JOIN attempts on attempts.activity_id = activities.activity_id
LEFT OUTER JOIN hints on hints.activity_id = activities.activity_id
WHERE activities.objective_id = 123
ORDER BY activities.created_at DESC

...当应用程序收到这个怪物的结果时,它会以某种方式逐行进行,找出行所代表的类(哦,这一行,是图像,评论,尝试,提示等等) ?)然后为浏览器呈现适当的模板。

我已经读过“独占弧”模式和it should be avoided,但目前还不清楚如何来避免它。那么对于这个问题,我可以在如何正确地做到这一点时获得一些具体的指导或指示吗?

0 个答案:

没有答案