mysql好友关系数据表设计_社交系统中用户好友关系数据库设计

基础分析

第一步,有一张用户表,表内包含用户的基本信息,比如账号、姓名、性别等信息。这里用tb_user表示用户信息表。

ID用户名

1张三

2李四

3王五

4赵六

第二步,需要将用户与用户直接建立好友关系。这里有两种情况:单向好友关系、互为好友关系。

- 单向好友关系就是张三在李四的好友列表中,但李四没有在张三的好友列表中;

- 互为好友关系,如果张三和李四为好友,则双方都在彼此的好友列表中;

好友关系设计

无论上面两种关系的哪一种,好友关系表都可以使用下面的设计,表tb_friend:

IDuser_idfriend_id

112

213

示例中,张三拥有李四和王五两个好友。

单向好友模式

如果是单向好友模式,那么两个人互为好友关系则插入的数据应该是这样:

IDuser_idfriend_id

112

221

也就是张三是李四的好友,李四也是张三的好友。此时使用sql语句查询时只用限定user_id作为条件即可查询出用户的好友列表:

select * from tb_friend where user_id = 1

1

互为好友关系

因为是互为好友关系,则只需要插入一条数据即可。对应的查询语句为:

select * from tb_friend where user_id = 1 or friend_id = 1

1<

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,让我来为你提供一个校园BBS系统的UML建模和Java开发的方案。 1. 系统需求分析 根据校园BBS系统的需求,我们可以列出以下系统功能: - 用户注册、登录、退出、修改密码等基础功能; - 发帖、回复、点赞、举报、删除等帖子相关功能; - 板块管理、帖子管理、用户管理等后台管理功能; - 搜索、浏览、推荐等帖子浏览功能; - 私信、消息通知、好友关注等社交功能。 2. UML建模 基于以上需求,我们可以进行如下UML建模: - 用例图:描述系统的功能模块以及用户的使用场景和功能需求; - 类图:描述系统的实体类、业务逻辑类和数据访问类; - 活动图:描述系统的流程和交互过程; - 时序图:描述系统各个模块之间的时序关系。 3. Java开发 在Java开发,我们可以使用Struts2框架实现MVC分层,Hibernate5框架实现数据持久化,Spring5框架实现依赖注入和AOP编程。MySQL作为数据存储。 在具体实现,可以按照如下步骤进行: - 搭建Maven项目结构,引入相关依赖; - 配置Struts2、Hibernate5、Spring5框架的配置文件; - 编写实体类、DAO层、Service层和Action层的代码; - 编写前端页面,使用JSP和Bootstrap等技术实现前端交互界面; - 集成Redis缓存、Solr搜索等技术优化系统性能。 以上就是一个校园BBS系统的UML建模和Java开发方案,希望能对你有所帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值