我有2个模型:Comment
和User
,每个模型都可以被Post
所喜欢。
1)当然,应该在每个Comment
或User
2)但是每个Post
也应该有一个包含所有喜欢内容的页面。
所以,最明显的方法就是用m2m字段来做,这似乎会在未来导致很多问题。
这是怎么回事?
1)Comment
和users_liked_ids = ArrayField(models.IntegerField())
模型应该有一些
User
2)posts_liked_ids = ArrayField(models.IntegerField())
comments_liked_ids = ArrayField(models.IntegerField())
模型也应该有这样的字段:
User
每次users_liked_ids
喜欢某事时,都会执行两项操作:
1)用户的ID添加到帖子/评论的posts_liked_ids/comments_liked_ids
字段
2)帖子/评论的ID添加到用户的ArrayField
字段
问题是:
1)这是一个好计划吗?)
2)以这种方式进行查找是否有效获得"是否赞成帖子/评论?但当前用户
3)将喜欢的内容存储在一些单独的表中,而不是喜欢中
模型,但也在ng test --prod
4)可能更好地留在明显的m2m?
答案 0 :(得分:4)
1)不。
2)绝对不是。
3)绝对,令人难以置信的不是。不要进一步分割你的数据
4)是的。
以下是一些问题:
不要在任何情况下这样做。您可能希望将" post"和"评论"用于简化关系的模型,但这是联结表的用途。数组适用于不涉及外键或极端长度的用例。