最开始本来想写一个管理系统,因为考虑到期末来临,我女朋友就可以看着教程然后学一些东西,然后可以自己慢慢手敲代码。但无奈自己也太懒,两个月过后,我才开始继续写这个博客,而现在我都已经开学了。不过博客还是得继续写,有这么大的一个平台,为什么不分享自己的想法,或者说分享自己的一些知识呢。

一、系统需求分析

  下面是之前她发给我的一张图片,也不知道是哪一本书的项目,她说期末作业差不多就是这样了,我搜了一下是有一些写好的项目的,但也不管了,就挨着写好了。这是一个交友信息发布网,暂且就叫它信息发布系统吧,加上交友实在是有点不合适。

  系统采用的是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) 系统数据库设计的更多相关文章

  1. JavaWeb项目学习教程(1) 准备阶段

    写在最前面 为什么要写一个这样的教程?作为一个软件工程专业的学生,上课老师讲得飞快,几乎都是在课后自己消化,我知道学习记录的重要性.我自己本身还有很多很多基础的东西都没有学会,比较博客园的人有很大的差 ...

  2. Java高级项目实战03:CRM系统数据库设计

    接上一篇:Java高级项目实战02:客户关系管理系统CRM系统模块分析与介绍 欢迎点击回顾,接下来我们说说 CRM系统数据库设计. 我们根据产品的原型搞以及UI组的设计稿, 接下来就要设计数据库, 一 ...

  3. Oracle数据库设计实例-实时生产效率系统数据库设计

    Oracle数据库设计实例-实时生产效率系统数据库设计 引言 1.1 设计前提 某部门经理要求IT部门设计一个流水线实时生产效率系统,用来统计实时的生产量和效率.流水线有数百条,实时间隔为1min. ...

  4. ylbtech-KeFuYunWei(服务运维考核系统)-数据库设计

    ylbtech-DatabaseDesgin:ylbtech-KeFuYunWei(服务运维考核系统)-数据库设计 DatabaseName:KEFUYUNWEI Model:Admin 用户后台管理 ...

  5. 02-大鸭梨博客系统数据库设计及Dapper的使用

    毫无疑问,数据库的设计在一个系统中起了至关重要的作用.我们都知道,系统设计分为两部分,或者说是两个阶段,即数据库设计和功能设计.构建一个完善的系统需要这两个阶段的充分考量.周密设计.合理联接以及密切配 ...

  6. VB.NET版机房收费系统—数据库设计

    之前第一遍机房收费的时候,用的数据库是别人的.认知也仅仅能建立在别人的基础上,等自考中<数据库系统原理>这本书学完了之后,再去看曾经的数据库,发现数据库真的还须要进一步的优化.以下是我设计 ...

  7. [SQL] 外卖系统数据库设计

    注意: 1.项目需求:小程序外卖系统,以美团,饿了么为参考. 2.表设计没有外键约束,设计是在程序中进行外键约束. 3.希望通过分享该数据库设计,获取大家的建议和讨论. SQL: CREATE DAT ...

  8. MySQL学习07(规范化数据库设计)

    规范化数据库设计 当数据库比较复杂时我们需要设计数据库 糟糕的数据库设计 : 数据冗余,存储空间浪费 数据更新和插入的异常 程序性能差 良好的数据库设计 : 节省数据的存储空间 能够保证数据的完整性 ...

  9. Vue/Egg大型项目开发(二)数据库设计

    项目Github地址:前端(https://github.com/14glwu/stuer)后端(https://github.com/14glwu/stuer-server) 项目线上预览:http ...

随机推荐

  1. November 19th 2016 Week 47th Saturday

    Nature didn't need an operation to be beautiful. It just was. 自然之美无需刻意而为,其本身即为美. Recently I saw seve ...

  2. python3 80行代码实现贪吃蛇

    上面是实现的截图,废话不说,直接开始说一下代码 pos = { 'UP': (-1,0), 'DOWN':(+1,0), 'LEFT':(0,-1), 'RIGHT':(0,+1), } curren ...

  3. php 访问控制和重载

    一     php 类中定义的private/protected属性,类外部是无法访问的,但是 我们可以通过public方法来访问设置这些属性 如下 <?php class test{ priv ...

  4. 【转】Json判断是否存在某个属性和遍历各个属性和值

    var field='uid'; var jsonObj={uid:'001'}; 一. jsonObj[field] != undefined //注意:如果field值正好是undefined那就 ...

  5. eclipse导入maven工程missing artifact(实际是存在的)错误解决

    找到出错的jar包文件位置,删掉_maven.repositories文件(或用文本编辑器打开,将“>main=”改为“>=”,即删除main,当然main也可能是其他值),然后updat ...

  6. 使用 CSS 根据兄弟元素的个数来调整样式

    在某些场景下,我们需要根据兄弟元素的总数来为它们设置样式.最常见的场景就是,当一个列表不断延长时,通过隐藏控件或压缩控件等方式来节省屏幕空间,以此提升用户体验. 为保证一屏内容能展示更多的内容,需要将 ...

  7. python第十一课——转换结构

    3.转换函数:int():float():str():list():tuple():set():dict():bool(): 案例: #演示各个转换函数的使用: 数值型-->字符型使用:str( ...

  8. 20165318 2017-2018-2 《Java程序设计》第二周学习总结

    20165318 2017-2018-2 <Java程序设计>第二周学习总结 教材学习内容总结 本周学习了第二章和第三章的内容,掌握了Java中基本数据类型.数组.运算符.表达式和语句等方 ...

  9. BZOJ4522:[CQOI2016]密钥破解(Pollard-Rho,exgcd)

    Description 一种非对称加密算法的密钥生成过程如下: 1. 任选两个不同的质数 p ,q 2. 计算 N=pq , r=(p-1)(q-1) 3. 选取小于r ,且与 r 互质的整数 e  ...

  10. 1864. [ZJOI2006]三色二叉树【树形DP】

    Description Input 仅有一行,不超过500000个字符,表示一个二叉树序列. Output 输出文件也只有一行,包含两个数,依次表示最多和最少有多少个点能够被染成绿色. Sample ...