首页 > 数据库 >QQZone1 - 需求分析&数据库设计

QQZone1 - 需求分析&数据库设计

时间:2023-01-26 11:00:11浏览次数:35  
标签:范式 登录 数据库 用户 回复 设计 日志 QQZone1

1. 熟悉QQZone业务需求

1) 用户登录
2) 登录成功,显示主界面。左侧显示好友列表;上端显示欢迎词。如果不是自己的空间,显示超链接:返回自己的空间;下端显示日志列表
3) 查看日志详情:
    - 日志本身的信息(作者头像、昵称、日志标题、日志内容、日志的日期)
    - 回复列表(回复者的头像、昵称、回复内容、回复日期)
    - 主人回复信息
4) 删除日志
5) 删除特定回复
6) 删除特定主人回复
7) 添加日志、添加回复、添加主人回复
8) 点击左侧好友链接,进入好友的空间

2. 数据库设计

1) 抽取实体 : 用户登录信息、用户详情信息 、 日志 、 回贴 、 主人回复
2) 分析其中的属性:

- 用户登录信息:账号、密码、头像、昵称
- 用户详情信息:真实姓名、星座、血型、邮箱、手机号.....
- 日志:标题、内容、日期、作者
- 回复:内容、日期、作者、日志
- 主人回复:内容、日期、作者、回复

3) 分析实体之间的关系

实体与属性

  • 用户登录信息 : 用户详情信息 1:1 PK
    • 用户 : 日志 1:N
    • 日志 : 回复 1:N
    • 回复 : 主人回复 1:1 UK
    • 用户 : 好友 M : N

3.数据库的范式:

1) 第一范式:列不可再分
2) 第二范式:一张表只表达一层含义(只描述一件事情)
3) 第三范式:表中的每一列和主键都是直接依赖关系,而不是间接依赖

4.数据库设计的范式和数据库的查询性能很多时候是相悖的,我们需要根据实际的业务情况做一个选择:

  • 查询频次不高的情况下,我们更倾向于提高数据库的设计范式,从而提高存储效率
  • 查询频次较高的情形,我们更倾向于牺牲数据库的规范度,降低数据库设计的范式,允许特定的冗余,从而提高查询的性能

5.QQZone登录功能实现出现的四个错误:

  1. URL没修改,用的还是fruitdb
    2)
    3)rsmd.getColumnName() 和 rsmd.getColumnLabel()
    4)Can not set com.atguigu.qqzone.pojo.UserBasic field com.atguigu.qqzone.pojo.Topic.author to java.lang.Integer
  2. left.html页面没有样式,同时数据也不展示,原因是:我们是直接去请求的静态页面资源,那么并没有执行super.processTemplate(),也就是thymeleaf没有起作用
    (之前的表单也是这个原因)
    解决方法:
    • 新增PageController,添加page方法:
      public String page(String page){
      return page ; // frames/left
      }
      目的是执行super.processTemplate()方法,让thymeleaf生效

标签:范式,登录,数据库,用户,回复,设计,日志,QQZone1
From: https://www.cnblogs.com/Ashen-/p/17067618.html

相关文章

  • 京东达达核心系统架构:从短平快到体系化的设计精要
     前言 商品系统是电商系统最基础、最核心的系统之一。商品数据遍布所有业务,首页、门店页、购物车、订单、结算、售后、库存、价格等,都离不开商品。商品信......
  • 京东达达核心系统架构:从短平快到体系化的设计精要
     前言 商品系统是电商系统最基础、最核心的系统之一。商品数据遍布所有业务,首页、门店页、购物车、订单、结算、售后、库存、价格等,都离不开商品。商品信......
  • 京东达达核心系统架构:从短平快到体系化的设计精要
     前言 商品系统是电商系统最基础、最核心的系统之一。商品数据遍布所有业务,首页、门店页、购物车、订单、结算、售后、库存、价格等,都离不开商品。商品信......
  • 京东达达核心系统架构:从短平快到体系化的设计精要
     前言 商品系统是电商系统最基础、最核心的系统之一。商品数据遍布所有业务,首页、门店页、购物车、订单、结算、售后、库存、价格等,都离不开商品。商品信......
  • VS2008使用Access数据库,不能更新数据库中数据的原因
    参考文章:​​http://zhidao.baidu.com/question/150772502.html​​本文关键词:VS2008运行工程,Access数据库中的数据更新不了,数据库中的数据被还原,数据添加不了,往数据库添......
  • Java连接SQL 2005数据库!...
    importjava.sql.Connection;//导入连接数据库类importjava.sql.DriverManager;//导入数据库驱动管理类importjava.sql.SQLException;//导入连接数据库异常类public......
  • Java操作数据库类Statement之注意事项!...
    import java.sql.StatementStatement类可用于执行SQL语句,不同类型的SQL语句,需要使用不同的方法,具体如下:ResultSet executeQuery(Stringsql)//用于执行select语句,......
  • 浅谈PHP设计模式的命令模式
    简介:命令模式:属于行为型的设计模式。将一个请求封装为一个对象,从而是你可用不同的请求对客户端进行参数化。对请求排队或记录请求日志,以及支持可撤销的操作。适用场景:命......
  • 21 | 面向流水线的指令设计(下):奔腾4是怎么失败的?
    上一讲,我给你初步介绍了CPU的流水线技术。乍看起来,流水线技术是一个提升性能的灵丹妙药。它通过把一条指令的操作切分成更细的多个步骤,可以避免CPU“浪费”。每一个细......
  • MySQL数据库
    目录数据库MySQL一、MySQL基本操作SQL语句二、修改字符编码配置文件以及数据库存储引擎1.修改字符编码2.数据库存储引擎3.严格模式三、创建表的完整的语法四、字段类型1.字......