如何在Django中建立这种基于时间的关系? (图像链接)

时间:2012-09-21 06:30:50

标签: django database-design

我在找出与Django建立以下关系模型的最佳方法时遇到了问题。

我目前有一个站点模型作为主要模型,其他一切都附加到。站点由两个基本构建块组成:ModuleSlots和模块。 ModuleSlot可以附加一个模块(我将在一秒钟内描述)。

然后我有一个名为ModuleBase的模型,它是可以附加到站点模块的模块的基本模型。模块是一个独立的网站,它本身就是功能性的 - 它对外部世界一无所知。 ModuleBase模型旨在继承以创建新模块 - 示例模块是Poll模块和内容模块。关键是,我希望能够在将来定义新类型的模块,这就是我采用基类方法的原因。下面的图片可能更好地描述我刚刚写的内容。

http://i.stack.imgur.com/Y1nUw.png

现在,我想给这个方案带来时间 - ModuleSlot的内容应该是及时的,这意味着模块和附加的poll / content / etc。应该能够在相同的预定时间内改变。例如,假设ModuleSlot当前与内容模块绑定。我希望ModuleSlot更改为指向Poll模块并显示特定的民意调查。这一切都应该在特定时间自动发生。

我该如何呈现这种关系?我一直在给这一点,这是我到目前为止所做的:我认为我应该创建某种GenericContent模型,然后由模块定义的各个内容类型继承,例如。 PollModule的轮询将继承自GenericContent,而ContentModule的内容也会这样做。我还应该为ModuleSlot引入TimeSpan。然后,在后端,如果ModuleSlot需要更新,我可以检查每一分钟,如果应该更改模块和附加内容,则进行更新。你们有什么感想?下面的杂乱图片(可能)描述了所描述的关系。

我不确定继承是否是正确的方法(GenericContent)。我也可以只存储民意调查/内容/等的ID。在ModuleSlot中,因为我的所有id都是相同的类型 - 因为我知道附加到ModuleSlot的模块,所以我可以向Module询问给定id的内容。

http://i.stack.imgur.com/lFE1h.png

0 个答案:

没有答案