首页 > 数据库 >数据库设计心得——by你说的都队

数据库设计心得——by你说的都队

时间:2022-11-04 09:22:42浏览次数:47  
标签:视频 数据库 用户 设计 心得 举报 属性

 

项目介绍

我们的项目是基于跨层优化的视频传输系统,在dash架构的基础上实现视频的流畅播放,构建一个供用户交流的视频分享平台。

设计思路

我们小组根据前期的需求文档和原型等资料,模拟开发和使用的场景,初步确定了12个表,其中服务器端9个表,客户端3个表。首先从功能出发,最先能确定的是视频表,视频下有评论区所以需要评论表去储存用户评论内容,举报功能要求举报表,举报需要举报类型标识所以有个举报表,用户上传的视频要经过审核,如果从视频表中搜索效率会很低,所以我们根据实际情况创了一个审核视频表(缓冲表),属性基本跟视频表一样,但是为了避免冗余问题,去掉了部分属性。然后就是举报表,由于我们有三种举报类型,同时为了满足三大范式,我们建立了举报和举报类型表,将三种范式统一表示。而在在相似的评论表中因为只存在两种不同状态,所以我们没有额外建立类型表。

接着从角色角度出发,用户登录注册以及个人信息的记录需要一个用户表,但用户里有些特殊角色,包括VIP和管理员,我们针对他们建立了权限类型表,该表不仅能起区分角色,也能起权限控制的作用。以此类推确定了所有的表。然后建立了满足基本功能需要的视频表,历史记录表,图片表。

最后确定每个实体之间一对一、一对多以及多对多的关系画ER图,并且在此过程中注意了表名,属性名的命名规范和属性的数据类型,同时保证了设计符合三范式。

值得一提的是由于我们大部分表的增删改查操作比较频繁,所以我们除了与类型表的关联之外统一没有使用外键,取而代之的是改用索引的方式,加快操作速度,支持大规模数据的情况,由于实现操作过于细节,这儿不加赘述。

整体PDM

服务器:

 

 

客户端:

 

设计心得

  1. 数据库设计要从需求出发,结合实际。数据库建立的目的是服务项目。数据库各个表的建立,表内属性的规划,都要便于实际开发。
  2. 数据库设计需要细心和耐心,从实体出发。在设计初期不能遗漏表和属性,设计结束后还要检查是否有冗余属性。
  3. 有些表和字段需要仔细推敲,小组成员有不同意见时要积极交流,深入沟通,往往能发现问题所在。
  4. 要多沟通,与同学、老师和项目参与方沟通,确保数据库设计符合规范,符合实际。
  5. 数据库设计要求对项目有整体、全面的认知,否则设计时会无从下手。
  6. 用户上传的视频要经过审核,如果从视频表中搜索效率会很低,所以我们根据实际情况创了一个审核视频表(缓冲表)。
  7. 由于用户可能需要离线观看视频,我们将快速登录表和离线缓存表置于用户本地客户端。
  8. 用户举报的类型有三类,但数据并不复杂,因此我们将三种举报行为合并放在一张表里,再通过类型属性标识。
  9. 将外键改为索引的方式大有裨益,在大规模项目开发中很有帮助

标签:视频,数据库,用户,设计,心得,举报,属性
From: https://www.cnblogs.com/2kxx/p/16856604.html

相关文章