【近场社交项目】数据库系统期末设计——需求分析部分

news/2024/4/28 0:01:19/文章来源:https://blog.csdn.net/weixin_70261953/article/details/131518902

【近场社交项目】数据库系统设计——需求分析😎

  • 前言🙌
    • 1.需求求分析(用户部分为例)
      • 1.2用户数据字典
        • 1.2.1用户信息表(数据结构):
          • 数据项间的关系和结构定义:
      • 1.2.2.个人资料表(数据结构):
      • 1.2.3.标签信息表(数据结构):
      • 3.2.4.用户-标签关系表(数据结构):
      • 1.2.5. 文化内容详情表:(数据结构):
      • 1.2.6订单(基础结构)
      • 1.2.7用户预定社交场所的订单细节(基础结构)
      • 1.2.8 会员信息表
      • 1.2.9用户预定社交场所的订单(审核)
      • 二、处理过程要求:
      • 3.2.10用户可以进行下单业务操作:
  • 总结撒花💞

追梦之旅,你我同行

   
😎博客昵称:博客小梦
😊最喜欢的座右铭:全神贯注的上吧!!!
😊作者简介:一名热爱C/C++,算法等技术、喜爱运动、热爱K歌、敢于追梦的小博主!

😘博主小留言:哈喽!😄各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话不多说,文章推上!欢迎大家在评论区唠嗑指正,觉得好的话别忘了一键三连哦!😘
在这里插入图片描述

前言🙌

    哈喽各位友友们😊,我今天又学到了很多有趣的知识现在迫不及待的想和大家分享一下!😘我仅已此文,手把手带领大家栈的实现和力扣题解知识~ 都是精华内容,可不要错过哟!!!😍😍😍

1.需求求分析(用户部分为例)

1.2用户数据字典

1.2.1用户信息表(数据结构):

属性名:用户ID、用户名、密码、手机号(账号)、邮箱。
数据项:用户的ID、用户名、密码、手机号(账号)、邮箱。
数据结构:用户信息表
数据流:通过两种途径获得用户数据:
1)由用户通过我们平台的注册页面、用户个人页面通过完善信息,填写上述信息,完成数据的收集;
2)通过用户个人的微信授权获取用户的上述必要信息。

数据项间的关系和结构定义:

1)用户ID、用户名、密码、手机号(账号)、邮箱都是可以唯一对应一个用户的,其中设置用户ID为这张表的主码。
2)约束条件:在定义的时候,各个属性都是设置 NOT NULL(非空约束)。UNIQUE(唯一) 的约束条件,从而保证数据的完整性。

3)各个属性的域:
用户ID:varchar类型 设置为00001~99999(考虑到自身平台大小,以及用户的预期最大数量进行考量);
用户名:v varchar 类型, 4到12字节长度。根据我国《姓名登记条例》,对于姓名的规定是2~6个汉字的。
密码:varchar类型 6~32个字符长度;
手机号:char 类型 固定为11个字符长度,其还可以是用户的登陆的账号
邮箱:char类型,长度不超过35个字符(最长的电子邮件是35个字符长度)。

1.2.2.个人资料表(数据结构):

属性名:用户ID(主码)、姓名、性别、出生日期、职业。
数据项:用户ID、姓名、性别、出生日期、职业。
数据结构:个人资料表。
数据流:通过两种途径获得用户数据:

1)用户个人页面通过完善信息,填写上述信息,完成数据的收集;
2)通过用户个人微信授权获取用户的上述必要信息。

数据项间的关系和结构定义:

1)将个人资料表的用户ID设置为个人资料表的主码。用户信息表和个人资料表通过主键进行关联。
2)约束条件:在定义的时候,各个属性都是设置 NOT NULL(非空约束),不必设置UNIQUE约束条件,因为姓名、性别、出生日期、职业、内容都是可以重复的。用户ID是主码,已经设置了非空唯一的约束了。
3)各个属性的域:
用户ID:varchar类型 设置为00001~99999(考虑到自身平台大小,以及用户的预期最大数量进行考量);
用户名:varchar 类型, 412字节长度。根据我国《姓名登记条例》,对于姓名的规定是26个汉字的。
性别:char 类型 ,2个字节长度。
出生日期:char 类型, yyyy-mm-dd的格式,长度为10个字节长度。
职业:varchar 类型 ,0~255字节长度。

1.2.3.标签信息表(数据结构):

属性名:标签ID、标签类别,标签描述
数据项:标签ID、标签类别,标签描述
数据结构:标签信息表
数据流:通过发布问卷,收集各类商家社交场所的类别,服务业务详情等相关信息。

数据项间的关系和结构定义:

1)设置标签id为标签信息表的主码。
2)约束条件:在定义的时候,各个属性都是设置 NOT NULL(非空约束)和 UNIQUE约束条件,从而保证数据的完整性。
3)各个属性的域:

标签ID:int 类型,从0开始自增。设置标签id为标签信息表的主码
标签类别:varchar类型,0~30字符长度 ,作用:对于社交场所和社交文化以及用户进行一个分类和匹配机制。设置非空约束和UNIQUE约束条件
标签描述:varchar类型,0~255字符长度 。对于该标签的类别进行一个比较简短的描述。设置非空约束和UNIQUE约束条件

3.2.4.用户-标签关系表(数据结构):

属性名:S_id,F_id。
数据项:S_id,F_id。
数据结构:用户-标签关联表
数据流:来源于用户信息表和标签信息表中的数据。
数据项间的关系和结构定义:
1)将S_id 作为用户信息表的外键,F_id作为标签信息表的外键。通过用户信息表的用户id 和S_i进行关联,标签信息表的标签ID和F_id进行关联。
2)约束条件:外键和各自对应的主键设置为相同的约束条件,非空且唯一。
3)各个属性的域:
S_id:varchar类型 设置为00001~99999,用户信息表的外键
F_id:int 类型,标签信息表的外键。
4. 社交文化知识信息表:(数据结构):
属性名:编号,知识类别, F_id
数据项:编号,知识类别, F_id
数据结构:社交文化知识信息表
数据流:

1)来源于平台对各种社交知识的收集、归纳和分类
2)与专业的社交知识服务的平台合作,引进相关的知识内容数据。

数据项间的关系和结构定义:

1)将编号作为该信息表的主码,F_id作为标签信息表的外键。
2)约束条件:都设置为 NOT NULL 和UNIQUE约束条件。
3)各个属性的域:
编号:int 类型 从0开始自增,无上限,主码
知识类别:varchar 类型 0~60个字符长度,非空约束
F_id:int 类型,从0开始自增。作用是:作为标签信息表的外键,通过这个数据项和标签信息表进行一个关联。

1.2.5. 文化内容详情表:(数据结构):

属性名:编号,文本、音频、视频、图片
数据项:编号,文本、音频、视频、图片
数据结构:文化内容详情表
数据流:
1)来源于平台对各种社交知识的收集、归纳和分类
2)与专业的社交知识服务的平台合作,引进相关的知识内容数据。
数据项间的关系和结构定义:
1)将编号作为该信息表的主码
2)约束条件:文本、音频、视频、图片这几个属性内容可有可无,不用设置非空约束,但是需要设置UNIQUE唯一约束。
3)各个属性的域:
编号:int 类型 从0开始自增,无上限。由于社交文化知识信息表和文化详情表是一对一的关系,可以通过各自主键进行关联。
文本:text 类型,长度范围:0~65535个字节长度,设置UNIQUE唯一约束。
音频:varchar 类型,0~255个字节长度,存放音频的地址路径,设置UNIQUE唯一约束。
视频:varchar 类型,0~255个字节长度,存放视频的地址路径,设置UNIQUE唯一约束。
图片:varchar 类型,0~255个字节长度,存放图片的地址路径,设置UNIQUE唯一约束。

1.2.6订单(基础结构)

这里以用户预定社交场所的订单为例,其余的订单模式和这个类似。
属性名:订单号,用户ID、用户名、用户联系电话、审核状态、商家ID、下单时间
数据项:订单号,用户ID、用户名、用户联系电话、审核状态商家ID、下单时间
数据结构:订单,订单细节
数据流:通过用户ID在用户表中进行数据的快速填充用户信息
数据项间的关系和结构定义:
1)将订单号作为该订单的主码。是该订单的唯一标识。
2)约束条件:将属性都设置为NOT NULL非空约束和UNIQUE唯一约束。保证数据的完整性。
3)各个属性的域:
订单号:char 类型 长度固定为11个字符长度,前6为表示订单产生的时间,后六位表示订单的排号。例如230503000001,前五位表示2023年5月3日,后面表示1号订单。是订单的唯一标识。
用户ID:varchar类型 设置为00001~99999,外码。
用户名:varchar类型 4~12个字符长度;非空约束
用户联系电话:char 类型,11个字节长度,非空约束
唯一约束
审核状态:int类型,0或者1.当为0时,这张订单是没有审核的,一旦审核就会改为1。
商家ID:varchar类型 设置为002~999,作为商家信息表的外码
下单时间:datetime类型,非空约束。

1.2.7用户预定社交场所的订单细节(基础结构)

属性名:id、场所服务预定金额、场所规格(能容纳人数)、社交场所可预定时间,社交场所ID,订单号,F_id
数据项:编号、社交场所ID、场所服务预定金额、可预定时间、单位地点(一个房间或者其他)容纳的人数,F_id。
数据结构:订单细节
数据流:通过社交场所名,填充场所的相关信息。
数据项间的关系和结构定义:
1)将id作为该信息表的主码
2)约束条件:讲属性都设置为非空约束和UNIQUE唯一约束。
3)各个属性的域:
id:int 从0自动增长,无上限。主码
社交场所ID:char类型,000~999,场所服务表的外码
场所服务预定金额:int 类型,范围就是int所表示的数值范围。非空约束
场所规格:char类型,三个字节大小。非空约束
订单号:char 类型 长度固定为11个字符长度,作为订单的外码
可预定时间:datetime类型 ,数据格式为:yyyy-mm-dd。
F_id : int类型,作为折扣信息表的外键

1.2.8 会员信息表

属性名:会员ID、用户ID、会员有效时长、会员类别、会员起始时间、会员截止时间
数据项:会员ID、用户ID、会员有效时长、会员类别、会员起始时间、会员截止时间
数据结构:会员信息表
数据流:数据来源于用户信息表,以及根据用户的充值情况进行信息数据的匹配。
数据项间的关系和结构定义:
1)将会员ID作为会员信息表的主码
2)约束条件:将用户ID设置为外键约束,其他属性设置为非空约束,保证数据的完整性。
3)各个属性的域:
会员ID:int 类型 从0开始自增,作为会员信息表的主码
用户ID:varchar类型 设置为00001~99999(考虑到自身平台大小,以及用户的预期最大数量进行设置)作为用户信息表的外键;
会员有效时长:datetime类型。
会员起始时间:datetime类型。
会员截止时间:datetime类型。
会员类别:varchar类型,6个字节大小。年会员,月会员。

1.2.9用户预定社交场所的订单(审核)

数据存储名:用户预定社交场所的订单(审核)
用户提交订单后,商家和系统审核过的订单。
输入的数据流:来自制单的数据。
输出的数据:输出商家相关负责人和用户用的支付平台。
组成(数据结构): 用户预定社交场所的订单和用户预定社交场所的订单细节。
数据量:3.6W/年,(出库单100*365)
存储频率:200次/天(商家相关负责人100+和用户用的支付平台100)

二、处理过程要求:

处理过程名:制单
输入数据流:用户填写相关数据,以及用户信息表和商家信息表的数据流入
输出数据流:将订单信息输出给相应的处理平台和负责人。
处理:根据用户填写的订单数据,查询商家的社交场所相关信息和客户 的数据存储。锁定社交场所的状态,完成制单的新增。
处理过程名:审核
输入数据流:订单的数据流入
输出数据流:将审核后的,需要修改的数据输出到相应的处理平台和负责人
处理:经过商家那边确认自己的社交场所在该段时间是空闲状态,并且足以容纳提供的人数信息,可以将该社交场所设定为以预定状态,其他客户想要预定就拒绝预定。支付平台那边进行用户账面余额的修改。

简洁的数据流图,如下图所示:

在这里插入图片描述

3.2.10用户可以进行下单业务操作:

下单业务的详细操作流程:
具体步骤如下所示

1.用户在社交场所平台浏览商家页面信息,并选择心仪的社交场所。
2.用户进入该场地的详细信息页面,查看该场地的可预定时间、价格、设施等信息,并选择想要预定的日期和时间。
3.用户填写预定场地的相关信息,包括姓名、联系方式、预定时间、预定人数等,并提交订单。
4.系统生成订单号,并回显用户订单信息和订单号。
5.用户完成支付。
6.系统将订单状态更新为“已支付”。
7.社交场所平台通知社交场所进行预订确认,预订确认后将社交场所信息发送给用户。
8.用户到达预定场地并享受社交体验。

具体流程图如下:
在这里插入图片描述

总结撒花💞

   本篇文章旨在分享的是我数据库系统设计需求分析阶段中,用户部分的数字字典。希望大家通过阅读此文有所收获
   😘如果我写的有什么不好之处,请在文章下方给出你宝贵的意见😊。如果觉得我写的好的话请点个赞赞和关注哦~😘😘😘

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_325595.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【React组件通讯的三种方式】

React组件通讯的三种方式 父组件传递数据给子组件子组件传递数据给父组件 React组件之间的通讯分为三种: 父组件 →子组件子组件 →父组件兄弟组件 父组件传递数据给子组件 步骤: 父组件提供要传递的state数据给子组件标签添加属性,值为st…

LeetCode·每日一题·445. 两数相加 II·模拟

作者:小迅 链接:https://leetcode.cn/problems/add-two-numbers-ii/solutions/2328613/mo-ni-zhu-shi-chao-ji-xiang-xi-by-xun-ge-67qx/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权&#xff…

使用家庭宽带和摄像头,实现公网直播

那天去逛商场看到有个营业厅,本想进去问问有没有存话费送话费的活动,结果被忽悠办了一个19.9升千兆宽带加送一个路由器的业务。 网络环境验证 听他们说现在家庭宽带都是有公网IPV6地址的,立马用电脑试了下确实有IPV6地址。 赶紧随便写了几行…

记录使用ffmpeg把mp4转换成m3u8

背景:公司需要上一些视频资源,平均每一个都在600m以上,经过考虑以后采取视频分片以后上传到oss上进行加速播放的流程.这里记录一下使用ffmpeg进行转换视频格式的过程中的一些命令. 准备工作: 下载ffmpeg到本地,以及配置ffmpeg到环境变量中,这里就不多说了. 使用的时候先打开…

Jenkins之pipeline语法——2023.07

文章目录 一、概述二、Pipeline任务1、Pipeline Script 运行任务2、Pipeline script from SCM 通过代码库运行任务3、在 job(任务)中配置Pipeline script from SCM 三、Jenkinsfile 语法1、脚本式语法2、声明式语法1. agent :节点2. tool3. environment2. stages &a…

ATTCK(六)之ATTCK子项目atomicredteam测试环境安装与使用

ATT&CK子项目atomicredteam测试环境安装与使用 Atomicredteam的主站点为https://atomicredteam.io/,是一个攻击测试库,每个安全团队都可以执行这些测试来测试他们的防御控件。测试是有重点的,几乎没有依赖关系,并且以结构化格…

C++动态库使用

个人博客地址: https://cxx001.gitee.io 前言 Windows与Linux下面的动态链接库区别 1. 文件后缀不同 Linux动态库的后缀是 .so 文件,而window则是 .dll 文件。 2. 文件格式不同 (a)Linux下是ELF格式,即Executable and Linkab…

CANDENCE :简单贴装器件封装绘制

紧接candence:常见表贴焊盘绘制举例 简单贴装器件封装绘制 以0603封装电容为例,绘制其封装,这里会用到前面绘制的电容的焊盘。 1、打开PCB editor 软件工具 2、新建一个PACKGE symbol 文件,设置好路径和名称。点击ok确认 3、设置画布尺寸、原点位置、…

Uniapp开发的开源盲盒系统源码

最近比较火的盲盒系统,该项目是基于uniapp开发的盲盒项目,有需要的朋友可以联系我,运营级的项目,本次开源的是uniapp前端模板,选用技术为JAVA,采用框架:spring bootmybatisvue开发。 通过node安…

行为型模式-策略模式(一)

今天就说一说设计模式中的策略模式,从名字来讲,意思就是,对应不同的情况,就有一种解决问题的办法,不同的情况,就有不同的应对方法,这就是策略模式,非常的智能化。 也可以参考菜鸟 …

【Git原理与使用】-- 远程操作

目录​​​​​​​ 理解分布式版本控制系统 远程仓库 新建远程仓库 lssue 与 Pull Request模板文件 知识铺垫 lssue 模板文件 Pull Request模板文件 克隆远程仓库 使用 HTTPS 方式 使用 SSH 方式 第一步:创建SSH Key 向远程仓库推送 过程梳理 实操 …

【SLAM学习】获取IMU和雷达消息并发布

本文主要记录如何将rosbag的消息进行获取并进行发布以及后续处理。 测试数据集: 链接: https://pan.baidu.com/s/1DthWE45V5Zhq7UUrfTt_CQ 提取码: mxvn 查看数据集bag包里面都有那些话题: rosbag info indoor_lab_RS.bag 可以看到包含了两个话题…

『手撕 Mybatis 源码』09 - MyBatis 插件

MyBatis插件 概述 问题:什么是Mybatis插件?有什么作用? Mybatis插件本质上来说就是一个拦截器,它体现了 JDK 动态代理和责任链设计模式的综合运用 Mybatis 中所允许拦截的方法如下 Executor 【SQL执行器】【update&#xff…

Docker服务编排之Docker Compose的使用

Docker服务编排 概念:按照一定的业务规则批量的管理容器 微服务架构的应用系统中一般包含很多微服务,一个微服务中又包含很多的实例,每个微服务都要手动管理,维护的工作量很大。 拉去镜像,创建多个容器,分…

【Vue3】学习笔记-自定义hook函数

概念 什么是hook? 本质是一个函数,把setup函数中使用的Composition API进行了封装。 类似于vue2.x中的mixin。(但是mixins会组件的配置项覆盖。vue3使用了自定义hooks替代mixnins,hooks本质上是函数,引入调用。) 自定义hook的优势: 复用代…

【密码学基础】半/全同态加密算法基础学习笔记

文章目录 1 半同态加密Pailliar加法同态加密Paillier加解密过程Paillier的同态性Paillier的安全性 El Gamal乘法同态加密RSA乘法同态加密 2 全同态加密BFV全同态加密BFV的编码方式BFV加解密过程BFV的安全性BFV的同态性自举Bootstrapping 3 同态加密应用场景场景1:安…

0基础学习VR全景平台篇 第54篇: 高级功能-皮肤

功能位置示意 一、本功能将用在哪里? 皮肤功能,摆脱传统VR全景展示样式,自行选择场景与全景分组的界面模板,从而与不同的应用行业风格相互适应,达到最贴切的展示效果。 是在各种风格的VR全景作品中,最快实…

ubuntu安装MobaXterm和WPS

文章目录 ubuntu安装MobaXtermi386 架构wine操作步骤 ubuntu安装WPS操作步骤WPS版本知识补充 ubuntu安装MobaXterm i386 架构 sudo dpkg --add-architecture i386 是一个Linux系统中的命令,用于添加一个新的架构(architecture)支持到当前系统…

netwox构造免费ARP数据包【网络工程】(保姆级图文)

目录 构造免费的 ARP 数据包。1) 构造免费的 ARP 数据包2) 使用 Wireshark 进行抓包 总结 欢迎关注 『网络工程专业』 系列,持续更新中 欢迎关注 『网络工程专业』 系列,持续更新中 温馨提示:对虚拟机做任何设置,建议都要先快照备…

IDEA中集成zookeeper的插件

IDEA中集成zookeeper的插件 一、IDEA中集成插件 搜索插件并安装: 安装完成,重启IDEA 配置zk集群 连接成功