首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django中的泛型关系

Django中的泛型关系
EN

Stack Overflow用户
提问于 2009-11-29 14:52:00
回答 2查看 939关注 0票数 1

想听听你的意见。在目前的阶段(1.1),你会在django中使用泛型关系还是坚持更传统的建模--考虑到还不可能轻松地遍历和过滤这样的关系(与ForeignKey,ManyToMany,OneToOne关系相比)?

这里有一个例子-我在数据库中跟踪每个用户最后一次看到每个页面的时间,他/她决定“关注”一篇文章的时间,他们想要多长时间接收一次电子邮件更新,他们最后一次请求的时间,这样的电子邮件最后一次发送给用户的时间以及页面修改的日志。

因此,为了构建一个有意义的电子邮件摘要,我必须构建相当繁重的查询,这样用户就不会收到比他们要求的更多的电子邮件,并且消息最具信息性和简洁性。

一种方法是定义可能适合任何场景的活动模型,并使用泛型关系将它们连接到其他模型,另一种方法是定义单独的模型PageView、EmailUpdateLog、EmailSubscription,并以“通常的方式”访问它们。

使用泛型关系的缺点是很难编写复杂的查询,而且它们运行起来会更慢、更好-模型中的代码更少,更容易访问泛化对象(例如Activity)。

除了是一个有趣的概念之外,你有没有发现泛型关系给你带来巨大优势的场景?

也许你找到了其他方法来模拟泛型关系?

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2009-11-29 19:35:54

我会质疑你的初始假设:

,因为还不可能简单地遍历和过滤这样的关系

我认为遍历和过滤泛型关系并不是特别困难。只要您定义了关系的两端,向前和向后遍历的工作方式与正常的ForeignKeys基本相同。

让这些查询像正常关系一样高效是完全有可能的,所以我真的看不出有什么问题。

票数 2
EN

Stack Overflow用户

发布于 2009-11-29 15:15:59

一切都取决于您的需求/任务。

对于某些任务,泛型关系很好(我使用它们),而其他任务则更好地使用“传统建模”。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1814861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档