1

第一个提议:
Friendinvitemodel 包含邀请数据。
好友模型以这种方式包含好友数据:

FriendModel(models.Model):
    user = foreignkey..
    friend = fkey ...
    circle = foreignkey ..

所以,这里让我们假设,我们有 3 个用户,usera、userb、userc。usera, userb 是朋友。userb, userc 是朋友。usera, userc 是朋友。然后,我们在这里有 6 条记录,如下所示:

    Record 1: user = usera, friend=userb
    Record 2 : user = usera, friend=userc
    Record 3: user = userb, friend=usera
    Record 4 : user = userb, friend=userc
    Record 5: user = userc, friend=usera
    Record 6 : user = userc, friend=userb

我知道这里的记录翻了一番,但只是为了让“圈子”正常工作,我这样给出。

第二个建议:

不会有 Friend 模型,只有 Circle 会有

  class Circle(models.Model):
       user = foreignkey...
       json = json data comes here

所以,我在这里做的是,对于每个用户,将在这里创建一个对象,他的朋友列表在这个 json 数据中。

你觉得哪种方法好?第一还是第二?另外,json 计划是否使获取共同的朋友变得困难?

好吧,在这两种方法中,我们在获取用户时也必须获取用户信息,所以,这是我的计划。永远缓存每个用户的用户配置文件和用户对象,并且每当修改用户对象或用户配置文件 obj 时,我们都会以某种方式触发以刷新该实例的缓存。我们应该怎么做 ?

我对此的一个想法是,将修改后的用户 ID 存储在一些内存或 redis 类型的快速数据库中。我们编写了一个装饰器来检查请求 ID 是否在修改后的用户 ID 列表中。如果可用,则将从数据库中获取该密钥,并将该密钥从修改的用户 ID 列表中删除。如果不可用,它将简单地从缓存中显示。但不确定,如何点这个。

4

0 回答 0