第一个提议:
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 列表中删除。如果不可用,它将简单地从缓存中显示。但不确定,如何点这个。