mysql 类似 user__类似于微博 用户最后一条动态的查询
有一个用户动态表 feed :
user_who_id和user_whose_id都是user表的外键 指向user表
一个好友关注表 concern :
fans_id和follow_id都是user表的外键 指向user表
这个时候我需要查询出所有我关注的好友,并显示他们的最后一条动态.
类似于上面这种形式.
之前的一种做法是 查出好友,然后根据好友id去查询出好友最后一条动态,然后塞到好友对象中,也就是在concern中加一个不持久化的属性 lastFeed
这样的话还好做些,但是有个需求就是根据好友最后动态的更新时间来进行我好友的排序.
之前的做法就是根据我的好友进行分组查出好友最后一条动态 并根据动态创建时间排序.
select f3 from Feed f3 where f3.id in(select max(f2.id) from Feed f2 where f2.id in(select f1.id from Feed f1 where f1.who.id in(select c.follow.id from Concern c where c.fans.id= and c.isFriends=1) order by f1.id desc) group by f2.who.id) order by f3.id desc
然后再根据动态中的user_who_id(动态的产生者)去查询concern,然后再将lastFeed放到concern中传到前台.
这样做感觉很烂,效率不好,而且很麻烦.
后来想到一种做法,就是在 user表中加一个字段 last_feed_id 就是用户的最后一条动态的id.是个外键.相当于user表示子表,feed表就是主表.
这样查询很方便,hibernate中直接concern.follow.lastFeed即可.
排序的话根据lastFeed的时间排序即可.
但是目前遇到的问题就是更新时很麻烦,例如(用户评论了一篇文章) 如果这篇文章被删除,那么相应的评论动态都要删掉.这时候就需要更新user表的最后一条动态.
因为Feed表这时是主表,user变成从表,删除feed时 可能会有外间约束,删不掉.还必须先解除外间关系,再删feed,然后再查询出最后一条动态,更新到user表中.
感觉这两种都不咋地啊,有没有别的更好的设计方法?
mysql 类似 user__类似于微博 用户最后一条动态的查询相关推荐
- java mysql点赞功能_用Java做一个类似于微博QQ空间点赞的功能-Fun言
点赞是一个互动性很强的功能,网站加入点赞可以增强用户之间的亲密度,可以利用点赞排出受欢迎文章或者其他的列表,所以今天教大家如何做一个类似于微博.QQ空间的点赞功能 需求分析: 首先要明确这个功能是需要 ...
- mysql 角色管理_MySQL 8 用户和角色管理入门
MySQL 8.0 正式版目前已发布,MySQL 8.0 增加了很多新的功能,具体可参考「MySQL 8.0 正式版 8.0.11 发布!」一文. MySQL 8.0 在用户管理方面增加了角色管理,默 ...
- [Python 爬虫] 使用 Scrapy 爬取新浪微博用户信息(二) —— 编写一个基本的 Spider 爬取微博用户信息
上一篇:[Python 爬虫] 使用 Scrapy 爬取新浪微博用户信息(一) -- 新建爬虫项目 在上一篇我们新建了一个 sina_scrapy 的项目,这一节我们开始正式编写爬虫的代码. 选择目标 ...
- php表单数据提交到本业,PHP_PHP+Mysql+jQuery实现发布微博程序 php篇,先还是要说明本例的业务流程 - phpStudy...
PHP+Mysql+jQuery实现发布微博程序 php篇 先还是要说明本例的业务流程: 1.前端用户输入内容,并对输入的内容字数进行实时统计. 2.用户提交数据,jQuery实现通过Ajax向后台发 ...
- mysql类似的数据库_MemSQL学习笔记-类似MySQL的数据库
http://gigaom.com/cloud/ex-facebookers-launch-memsql-to-make-your-database-fly/ -- 多主-从 http://www.m ...
- MySql类似Oracle的dual虚拟表
在mysql里也存在和oracle里类似的dual虚拟表:官方声明纯粹是为了满足select ... from...这一习惯问题,mysql会忽略对该表的引用. 你可千万注意了: select * f ...
- python微博爬虫实战_爬虫实战(一):爬取微博用户信息
前言 最近做课设,是一个有关个人隐私安全的课题,在网上找了很多论文,最后上海交通大学的一篇硕士论文<面向社会工程学的SNS分析和挖掘>[1] 给了我很多灵感,因为是对个人隐私安全进行评估, ...
- 美国网红python微博_GitHub - dataabc/weiboPR: 用python判断微博用户的影响力
功能 判断微博用户的影响力 输入 用户id:例如新浪微博昵称为"Dear-迪丽热巴"的id为"1669879400".可以输入一个用户的user_id,也可以输 ...
- pyhton微博爬虫(2)——获取微博用户关注列表
本文的主要目标是获取微博用户关注列表以及关注列表中各微博用户的ID.昵称.详情链接.粉丝数.关注数等关键信息. 实现代码如下所示: # -*- coding: utf-8 -*- "&quo ...
最新文章
- CVPR 2022官方发布重要通知,禁止审稿期公开传播论文,静默期4个多月
- hdfs mv命令_大数据入门:HDFS文件管理系统简介
- Java 匿名对象、内部类
- 阿里云华北区挂了。。。
- POJ 3481 Double Queue
- SpringCloud之微服务
- C语言试题三十七之求除一个2×m整型二维数组中最大元素的值,并将此值返回调用函数。
- 论文浅尝 | 利用图 Transformer 实现基于知识图谱的文本生成
- -------------初识----------动态规划。--------------------------------------------
- Android Bitmaps缓存
- [Linux]使用宝塔面板做负载均衡时遇到的问题和解决办法
- 27.Yii App应用
- 空间查询时出错误 An expected Field was not found or could not be retrieved properly. [SHAPE.AREA] 问题的解决...
- 将大于2的偶数分解成两个素数之和
- 一文读懂单点登录系统对企业的价值
- php 字符串首字母ucfirst函数转换成大写
- 独立IP、特产浏览量(PV)、访问次数(VV)、独立访客(UV)
- python如何计算概率事件_145、Python实现概率分布
- 逆向之汇编(EBP寻址)
- NXP JN5189 ZigBee 3.0开发环境搭建
热门文章
- CSS 行高与行对齐精解:line-height 和 vertical-align (图文)
- 大家买PDA干什么,来看SPB的调查
- X86服务器虚拟化的资源划分和性能优化
- ACM-ICPC 2018 南京赛区网络预赛
- 168 Excel Sheet Column Title
- 【iOS报错】“The operation couldn’t be completed (LaunchServicesError erro
- gearman的持久化,以mysql的方式
- hive -f 传递参数
- Sql Server 三个很有用的函数
- 深度剖析http协议(一)