我最近在多个网站上工作过,内容类型相似,但没有得到我想要实现的设计。
我有多种类型的内容文章,访谈,视频,图库,博客等。所有这些模型都有非常相似的属性(标题,slug,body,pub_date等)。由于我使用的是django和admin,几乎所有的管理员设置都是相同的。大多数将只有一个或两个额外的字段(即视频文件名,博客作者)。
电流选项
使用单个模型“Post / Article”然后只有一个type_of_content字段。这给了我一个模型,使搜索更容易,更快,并且易于维护一个模型。经理可以用来提取某些类型的内容。
让模特'视频,采访,音频'成为一个名为“帖子/文章”的模型。在不使用冗余的情况下,可以灵活地使用不同的模型。虽然很多联接和所有管理代码仍然重复。
非常冗余并为每种类型的内容创建单独的模型,即使它们共享大多数字段。需要维护更多的东西,而不是干燥,但灵活性最高。
具有更多经验的人的任何见解都会很棒。
谢谢。
答案 0 :(得分:1)
我没有那么多使用Django的经验,但听起来你想要做的是从Abstract Base Class继承。这避免了为抽象父类创建表,因此您可以获得选项#2的优势而无需连接。