首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对各种django模型进行聚合排序?

如何对各种django模型进行聚合排序?
EN

Stack Overflow用户
提问于 2021-05-17 08:46:22
回答 1查看 39关注 0票数 0

我有4个模型用户,帖子,评论,朋友。请参阅以下型号

现在,我需要一个API,用于用户最近完成的十大活动。

它可以是所有这三种的组合,即用户最近的帖子+用户最近的评论+用户添加的最近的朋友

或者只能有一个评论

或者只能出现在帖子上

或者只能是朋友

基本上我需要用户最近做的10件事,

如何在三个模型中按日期对这些数据进行排序,并将其放入一个结果列表中?

所以我可以分页到结果列表。

用户模型-存储有关用户的所有详细信息。

代码语言:javascript
复制
class User(models.Model):
   ......
   ''  ''''

Posts模型-存储用户创建的帖子。

代码语言:javascript
复制
class Posts(models.Model):
   ......
   ''  ''''

注释-将用户的评论存储在帖子中。

代码语言:javascript
复制
class Comments(models.Model):
       ......
       ''  ''''

朋友-储存朋友信息

代码语言:javascript
复制
class Friends(models.Model):

 ......
   ''  ''''
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-17 09:25:53

备选案文1

我想要一个user_activity

代码语言:javascript
复制
CREATE TABLE "uesr_activity" (
    "id" BIGINT PRIMARY KEY,
    "timestamp" TIMESTAMP WITH TIME ZONE,
    "user_id" BIGINT,
    "verb" TEXT, -- perhaps enum
    "object_type" TEXT, -- perhaps enum
    "object_id" BIGINT
);

每次你创建一个帖子,评论,只是也写到这个表。

选项2

post comments表中查询前10位,在应用层中合并/排序,将合并后的前10位返回给客户端。在随后的分页中,使用两个游标/ In,从每个大于游标的表中查询下10个

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

https://stackoverflow.com/questions/67566544

复制
相关文章

相似问题

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