JavaWeb项目学习教程(2) 系统数据库设计
最开始本来想写一个管理系统,因为考虑到期末来临,我女朋友就可以看着教程然后学一些东西,然后可以自己慢慢手敲代码。但无奈自己也太懒,两个月过后,我才开始继续写这个博客,而现在我都已经开学了。不过博客还是得继续写,有这么大的一个平台,为什么不分享自己的想法,或者说分享自己的一些知识呢。
一、系统需求分析
下面是之前她发给我的一张图片,也不知道是哪一本书的项目,她说期末作业差不多就是这样了,我搜了一下是有一些写好的项目的,但也不管了,就挨着写好了。这是一个交友信息发布网,暂且就叫它信息发布系统吧,加上交友实在是有点不合适。

系统采用的是MVC模式,数据库这些东西都适合初学者。照片上传是有一些东西,但其他模块都很简单,我们一个一个分析。
1.会员注册
新会员填写表单,包括会员名、E-mail地址等信息,如果输入的会员名以及被其他用户注册使用,系统提示新用户更改自己的会员名。
2.会员登录
输入会员名,密码。如果用户输入的会员名或密码有错误,系统将显示错误信息。
3.上传照片
如果登录成功,用户可以使用该模块上传自己的照片。
4.浏览会员
成功登录的会员可以分页浏览其他会员的信息,比如其他会员的简历、照片等。如果用户直接进入该页面或没有成功登录就进入该页面,将被转到“会员登陆”页面。
5.修改密码
成功登录的会员可以在该页面修改自己的登录密码。如果用户直接进入该页面或没有成功登录就进入该页面,将被转到“会员登录”页面。
6.修改注册信息
成功登录的会员可以在该页面修改自己的注册信息,比如联系电话、通讯地址等。如果用户直接进入该页面或没有成功登录就进入该页面,将被转到“会员登录”页面。
7.退出登录
成功登录的用户可以使用该模块退出登录。
二、数据库设计
浏览整个系统,上面就是系统的每一个需求了。梳理整个流程,从最开始用户进入登录界面,用户可以选择注册,已经有账号的用户可以选择直接登录。登录后,自动跳转到浏览界面,可以点进会员进行查看,也可以对自己的个人资料进行修改。当想上传自己的照片时,可以点击上传对自己的照片进行上传,上传后其他会员可以浏览到你的资料。当然也可以修改自己的密码,浏览结束点击退出登录。(我觉得管理员应该审核审核系统的照片...)
当梳理完这些需求之后,我们就可以开始设计数据库了。在11.2中已经写出了一个表。但不必看嗷,我们只需要设计自己的就可以了。(没有那本书)
用户表(user)
- user_id(用户id,自增长主键)
- role_id(角色id,不同角色)
- user_name(用户名,登录用)
- password(密码,未加密)
- telephone(电话号码,可登陆)
- status(用户状态,0:锁定;1:正常等)
用户信息表(user_info) PS:对于设置性别和出生日期的处理可能比较麻烦,因此我举例列出
- user_id(用户编号,关联用户表)
- nickname(昵称,可设置)
- sex(性别,0:女 ;1:男)
- personal_sign(签名)
- face_url(头像url,上传图片后设置)
- birthday(出生日期)
- address(居住地址)
- regist_time(最后登录时间)
角色表(role)
- role_id(角色id,自增)
- role_name(角色名)
图片表(picture)
- pic_id(图片id,自增)
- user_id(上传人,关联用户表)
- pic_name(图片名,存入服务器的重命名)
- pic_path(图片路径,服务器中的路径)
- pic_describe(图片描述)
- pic_type(图片类型,头像或者展示图片)
- upload_time(上传时间)
以上这几个表,接下来要在mysql中创建,当然除了使用sql语句创建,也可以直接使用navicate进行建表。
三、创建数据库
1.打开navicat首先进入localhost本地连接,右键→新建数据库

2.将数据库命名为pss,选择字符集utf-8以及排序规则。pss的意思是图片分享系统

3.双击pss打开数据库,点击新建表,右侧出现建表的窗口

4.根据上述我们所分析的表的内容进行填写,user表如下。要注意的是,在设置id唯一标识的时候要点击下面的自动递增,最好将注释也写上。所有的填写完之后,点击保存或者ctrl+s,命名表为user即可

5.用户信息表user_info。这里的user_id从user表中获取,所以不需要自增。在用户注册登录后,可以点进个人信息完善资料。

6.角色表role

7.图片表picture

所有的表创建完毕后,下一次就开始创建项目与写代码了。数据库的设计其实都是依据个人的想法来设计的,可能我在读需求的时候已经想了自己希望的系统是什么样。当然一个完整且正式的项目一定不会这么快开始,其中还要进行其他的一些模型设计,概念模型、用例图等等,也要不断和客户进行讨论和需求分析,还要团队进行讨论和修改,画mockup和原型等等。所以,这个仅仅还是如何写,怎么写好更多的还是自己的学习。当然作为初学者的小作业,这已经足够了。
JavaWeb项目学习教程(2) 系统数据库设计的更多相关文章
- JavaWeb项目学习教程(1) 准备阶段
写在最前面 为什么要写一个这样的教程?作为一个软件工程专业的学生,上课老师讲得飞快,几乎都是在课后自己消化,我知道学习记录的重要性.我自己本身还有很多很多基础的东西都没有学会,比较博客园的人有很大的差 ...
- Java高级项目实战03:CRM系统数据库设计
接上一篇:Java高级项目实战02:客户关系管理系统CRM系统模块分析与介绍 欢迎点击回顾,接下来我们说说 CRM系统数据库设计. 我们根据产品的原型搞以及UI组的设计稿, 接下来就要设计数据库, 一 ...
- Oracle数据库设计实例-实时生产效率系统数据库设计
Oracle数据库设计实例-实时生产效率系统数据库设计 引言 1.1 设计前提 某部门经理要求IT部门设计一个流水线实时生产效率系统,用来统计实时的生产量和效率.流水线有数百条,实时间隔为1min. ...
- ylbtech-KeFuYunWei(服务运维考核系统)-数据库设计
ylbtech-DatabaseDesgin:ylbtech-KeFuYunWei(服务运维考核系统)-数据库设计 DatabaseName:KEFUYUNWEI Model:Admin 用户后台管理 ...
- 02-大鸭梨博客系统数据库设计及Dapper的使用
毫无疑问,数据库的设计在一个系统中起了至关重要的作用.我们都知道,系统设计分为两部分,或者说是两个阶段,即数据库设计和功能设计.构建一个完善的系统需要这两个阶段的充分考量.周密设计.合理联接以及密切配 ...
- VB.NET版机房收费系统—数据库设计
之前第一遍机房收费的时候,用的数据库是别人的.认知也仅仅能建立在别人的基础上,等自考中<数据库系统原理>这本书学完了之后,再去看曾经的数据库,发现数据库真的还须要进一步的优化.以下是我设计 ...
- [SQL] 外卖系统数据库设计
注意: 1.项目需求:小程序外卖系统,以美团,饿了么为参考. 2.表设计没有外键约束,设计是在程序中进行外键约束. 3.希望通过分享该数据库设计,获取大家的建议和讨论. SQL: CREATE DAT ...
- MySQL学习07(规范化数据库设计)
规范化数据库设计 当数据库比较复杂时我们需要设计数据库 糟糕的数据库设计 : 数据冗余,存储空间浪费 数据更新和插入的异常 程序性能差 良好的数据库设计 : 节省数据的存储空间 能够保证数据的完整性 ...
- Vue/Egg大型项目开发(二)数据库设计
项目Github地址:前端(https://github.com/14glwu/stuer)后端(https://github.com/14glwu/stuer-server) 项目线上预览:http ...
随机推荐
- python3: 字符串和文本(3)
11. 删除字符串中不需要的字符 strip() 方法能用于删除开始或结尾的字符: lstrip() 和 rstrip() 分别从左和从右执行删除操作 >>> s = ' hell ...
- (转)em重建全过程
该问题遇到N次,被郁闷N次,特此记录以备不时之需 由于n久不用em,而本机在公司使用dhcp自动获取ip,导致ip变化,而使em启动报出ora-12514 DBD ERROR: OCIServerAt ...
- BZOJ3160:万径人踪灭(FFT,Manacher)
Solution $ans=$回文子序列$-$回文子串的数目. 后者可以用$manacher$直接求. 前者设$f[i]$表示以$i$为中心的对称的字母对数. 那么回文子序列的数量也就是$\sum_{ ...
- 1433. [ZJOI2009]假期的宿舍【二分图】
Description 学校放假了······有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题.比如A 和B都是学校的学生,A要回家,而C来看B,C与A不认识.我们假设每个人只能 ...
- 【CF809E】Surprise me!
题目 这是一道神仙题 看到这样一个鬼畜的柿子 \[\sum_{i=1}^n\sum_{j=1}^n\varphi(a_i\times a_j)\times dis(i,j)\] 又是树上距离又是\(\ ...
- 搭建高可用mysql系列(2)-- Percona XtraDB Cluster 安装
本文主要介绍在 centos 下 Percona XtraDB Cluster(下文简称PXC) 的安装, 个人的系统版本信息如下: [root@c2-d09 worker]# more /etc/r ...
- 矩阵求逆·学习笔记 $\times$ [$LuoguP4783$]矩阵求逆
哦?今天在\(luogu\)上fa♂现了矩阵求逆的板子--于是就切了切. 那么我们考虑一个矩阵\(A\),它的逆矩阵记作\(A^{-1}\),其中对于矩阵这个群来讲,会有\(A \cdot A^{-1 ...
- $2018/8/15 = Day \ \ 1$杂题整理
\(\mathcal{Morning}\) \(Task1\)高精度\(\times\)高精度 哦呵呵--真是喜闻乐见啊,我发现这一部分比较有意思于是就打算整理下来233.窝萌现在有一个整数\(A = ...
- beta冲刺后续讨论
目录 组员:胡绪佩 组员:何家伟 组员:黄鸿杰 组员: 翟丹丹 组员:周政演 组员:胡青元 组员:庄卉 组员:刘恺琳 组员:何宇恒 组员:刘一好 组员:葛家灿 组员:胡绪佩 总结 通过这次的Beta版 ...
- ORA-28000 账号被锁定的解决办法
ORA-28000 账号被锁定的解决办法 错误场景:当使用sqlplus进行登录时报错:ORA-28000 账号被锁定.错误原因:由于oracle 11g 在默认在default概要文件中设置了密码最 ...