flask入门和进阶五(关注功能的实现Followers)

参考外文博客:https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-viii-followers

这章将学习如何实现类似于Twitter和其他社交网络的“粉丝”或“关注”,比如关注你。

接下来,将更多介绍应用程序的数据库。让用户能够轻松选择Ta们想要关注的其他用户。因此,将扩展数据库,以便跟踪谁在关注(粉)谁。

再次学习数据库关系

我想每一个用户维护一个“关注”和“关注者”列表。不幸的是,关系数据库没有我能用于这些列表的列表类型,所有都有记录、这些记录之间的关系。

数据库中有一个表示用户的表,所以剩下的是提出可以为关注、关注者链接建模的正确关系类型。现在是学习基本数据库关系类型的好时机:

一对多

通过这个关系连接的两个实体分别是用户,帖子。一个用户有很多篇帖子,每个帖子有一个用户。在数据库中,这个关系多侧使用外键。在上述关系中,外键user_id字段添加到posts表中。这个字段将每个帖子连接到user表中其作者的记录。

明显地,user_id字段提供了对给定帖子作者的直接访问,但反过来,为使得关系有用,我们应该可以获得给定用户所编写的帖子列表。posts表user_id字段也足以回答此问题,因为数据库中具有允许有效查询的索引,如 【检索user_id为X的所有帖子

多对多

多对多关系有点复杂。例如,考虑一个拥有studentsteachers的数据库,可以说一个学生有很多个老师,一个老师有很多个学生。这就像来自两端的两个重叠的一对多关系

对于这种类型的关系,我们应该能够查询到数据库,并取得教授给定学生的教师列表、教师班级的学生列表。这在关系数据库中表示实际上并不重要,因为无法通过向现有表添加外键来完成。

虽然一开始可能看起来不太明显,但是具有两个外键的关联表 能够有效地回答关于多对多关系的所有查询。

多对一,一对一

多对一关系,类似于一对多关系。不同之处在于从“多”侧看这种关系。

一对一关系是一对多关系的特殊情况。表示是类似的,但是得向数据库添加约束以防止“多”侧具有多个链接。虽然在某些情况下,这种关系很有用,但并不像其他关系类型常见。

选用的模型,很容易确定跟踪关注者的正确数据模型是多对多关系。因为一个用户可以关注很多用户,而一个用户也可以被很多用户所关注。在学生、教师的案列中,我们通过

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值