微信朋友圈数据库模式如何设计的

微信朋友圈数据库模式如何设计的,第1张

其实微信朋友圈的数据设计模式无非就是符合了三种设置模式,其中最常用的是第三种。

第一范式(1NF)

在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。

所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式(1NF)中表的每一行只包含一个实例的信息。例如,对于图3-2 中的员工信息表,不能将员工信息都放在一列中显示,也不能将其中的两列或多列在一列中显示;员工信息表的每一行只表示一个员工的信息,一个员工的信息在表中只出现一次。简而言之,第一范式就是无重复的列。

第二范式(2NF)

第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或行必须可以被惟一地区分。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。如图3-2 员工信息表中加上了员工编号(emp_id)列,因为每个员工的员工编号是惟一的,因此每个员工可以被惟一区分。这个惟一属性列被称为主关键字或主键、主码。

第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。简而言之,第二范式就是非主属性非部分依赖于主关键字。

第三范式(3NF)

满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。例如,存在一个部门信息表,其中每个部门有部门编号(dept_id)、部门名称、部门简介等信息。那么在图3-2的员工信息表中列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。如果不存在部门信息表,则根据第三范式(3NF)也应该构建它,否则就会有大量的数据冗余。简而言之,第三范式就是属性不依赖于其它非主属性。

此处用的是一个java web系统的一个staff表 *** 作的模块,核心部分包括表的设计、数据库连接、数据封装类(VO)的创建、封装业务的JavaBean(DAO)、servlet和jsp结合对数据库进行 *** 作和显示。其他业务的 *** 作大同小异。

涉及到的类、jsp和servlet

ConnectionManager.java

Staff.java

Staff_Interface.java

OperateStaff.java

servlet如下:

GetStaff.java

doAddStaff.java

doEditStaff.java

doDeleteStaff.java

配置文件:web.xml

jsp如下:

AddStaff.jsp

EditStaff.jsp

ShowStaff.jsp

error.jsp

使用sql server 数据库,staff表如下:

在这里插入图片描述

此数据表不是本人设计,在字段设置上有缺陷,还有数据库的编码也存在问题,此处只展示表的大体结构,大家在数据库设计上一定要力求完整!

接下来分析每个类的作用,以便理解DAO,VO,下篇再分析servlet。

ConnectionManager.java

此类是数据库管理类,注册数据库驱动和获取数据库连接,以及关闭数据库连接,其中,getConnection()方法用于返回连接对象dbconnection(后面用得到),另外还含有Connection、ResultSet、Statement对象的关闭方法,如void getConnection(Connection con){省略}

Staff.java

是一个封装数据的JavaBean(类),也是一个VO(VO就是一个简单的JavaBean),JavaBean 中定义了成员变量和相应的set和get方法。

Staff_Interface.java

Staff表的 *** 作接口类,在接口类中定义类的方法原型,在具体类OperateStaff.java(DAO)中实现接口。设置接口的作用主要是便于对程序扩充。

OperateStaff.java

为一个DAO,封装了数据库的 *** 作,如增加、删除、修改、查找,在此DAO中,会把从数据库查询到的信息实例化为VO(用查询到的信息来实例化VO(如此处的staff.java类)),再将实例化的VO放入ArrayList数组中(或其他存储对象中,如HashMap对象)。

DAO中一般含有如下结构:

ArrayList stlist=new ArrayList()

文章知识点与官方知识档案匹配

Java技能树首页概览

89145 人正在系统学习中

打开CSDN,阅读体验更佳

Dao层,Service层,Servlet层运用的自我理解_Young9518的博客

Dao层,Service层,Servlet层运用的自我理解 Dao层 先声明一个接口类,类里声明一些将会用的方法, 同一层内写一个实现这个接口类的类,重写接口类里的方法 方法主要是处理数据的方法, publicinterfaceIStuClassDao {publicListfindAllStuClass...

继续访问

什么是Dao层、Entity层、Service层、Servlet层、Utils层?

Servlet(Server Applet)是Java Servlet的简称,是为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。 Servlet实现过程: (1)客户端发送请求至服务器端...

继续访问

dao+service+servlet+jsp实现留言板(添加、查看)

运用MVC模式以及servlet、jsp技术实现留言板添加、查看

使用JavaBean(DAO和VO)开发购物车

使用JavaBean(DAO和VO)开发购物车 一,实现要求 1.编写一个JavaBean类Book,包含isbn,bookName,auther,publisher,price,amount 属性。用作VO(ValueObject)。 2.编写一个类BookDAO,该类中包含一个方法: publicArrayListgetAllBook() 该方法访问数据库,查询数据库表book_info,将所有图书以一个数组列表对象的形式返回。 3.改写作业7中的SelectBook.JSP页面,使用BookDAO获得

继续访问

Servlet基本功能实现_smallkneif的博客

1、Servlet 1.1、快速入门 创建项目,创建一个类实现Servlet接口,共有五个方法,可以在service方法中打印文字 配置Servlet 执行原理: 服务器受到浏览器请求之后,解析url路径,获得Servlet资源路径

继续访问

Servlet及JDBC、dao简单运用_summerwangnan的博客_jdbc和dao...

1.首先建一个dao包 ,然后创建一个类--BaseDao.java (里面放入与数据库相连接的代码等) package second.daoimport java.sql.Connectionimport java.sql.DriverManagerimport java.sql.PreparedStatement...

继续访问

JSP+Servlet+JavaBean+DAO模式+JDBC+Bootstrap+ajax+自定义标签完成用户登录验证

文章目录一.案例要求二.使用工具工具相关文件的导入三.案例导图四.案例实现1.数据库建立1.1 新建数据库1.2 建表1.3 添加记录2.登录页面实现Bootstrap部署login.jsp实现效果3.JDBC的DAO模式实现3.1 数据库连接类3.2 User实体类-JavaBeanUser特征User代码3.3 UserDAO接口类3.4 UserDAOImpl实现类3.5 UserDAOPr...

继续访问

博客系统(dao+servlet+service+vo+mysql)

基于的web的博客系统,数据库是mysql,里面有mysql数据库建表的sql语句,直接导入,部署好程序就可以运行了,保证可以运行

JSP中JavaBean和EL的介绍及使用

JavaBean在JSP中的应用 JavaBean使用时的注意事项;EL表达式的简单介绍和使用; 文件中解压可以直接导入运行的,运行环境MyEclipse2017 ,其它版本请注意添加jar文件!

带你了解:基于servlet层+service层+dao层实现前端对数据库的增删查改

前记:最近因为疫情原因上网课导致之前的几节课都没有好好听,所以当老师让我完成这个作业时我还是着急了一下。经过两天的了解学习,一天多完成了一个简单的从前斜体样式端 *** 作数据库demo.实现效果图如下: 在这里图就不多放了,如果你觉得实现以上的功能是你所想学习的,那么请继续往下看,否则也不用继续往下为此花费更多时间了。 一.实现原理 在实现前端 *** 作数据库之前,我们表面所认为的是:前端—>数据库 ...

继续访问

java web中的service,servlet和Dao有什么区别

servlet一般用于生成网页;service在后端中,web,service,Dao三层中,用于service调用Dao层。 Servlet返回的数据比较简单; Web Service返回的可以是复杂对象,甚至使用附件或者mutidata的二进制文件。 Servlet依赖于Java平台;Web Service是跨平台的,无论什么在什么平台使用什么语言开发的Web Service,其他平台上的任何语言都能调用。 Servlet定义的是一套服务于Java Web开发接口,目的是实现Java Web的动态访问。

继续访问

bean、dao、service、servlet的简单说明

bean:存放数据1、存放来自于数据库的数据。2、存放来自客户端的数据(表单提交),存数据的中介作用 dao:data access object:数据访问对象,主要做的事情就是对数据库单表进行增删改 *** 作,查的有可能是多表管理查询 service:对应界面上的 *** 作,增删改查,至于这个业务涉及到几个dao,就调用几个dao servlet:1、接受用户请求,进行处理(doget/dopost...

继续访问

JSP&Servlet --- JSP DAO模式

这几天开始和社会董还有小孟愿开始写小组的图书管理系统,将在此期间遇到的一些问题和学到的一些知识总结在博客里。 这篇博客要总结的就是在WEB项目中用到的很重要的一种数据库设计模式DAO。DAO是什么DAO是WEB项目里面的数据层,主要负责为其他各层(MVC(Model View Controller))提供数据。DAO层里封装了对数据库 *** 作的各种 *** 作的JDBC代码。为什么要使用DAO我们在写WEB项

继续访问

Java Web中访问数据库需要的DAO和VO

VO就是一个普通的JavaBean DAO叫做Data Access Object类,专门负责对数据库的访问 然后将数据库的 *** 作都封装在DAO内,把从数据库查询到的信息实例化为VO,放到ArrayList数组里返回,DAO类的代码如下

继续访问

book的Javabean类的实现

实现Java类的创建,基于book的类,包括许多的信息 name id book_type author

最新发布 JavaWeb连接数据库(Dao模式),实现添加book并按日期范围查找相应book信息

JDBC技术,通过简单的Dao模式封装,连接数据库,实现向数据库中添加book信息,并可以实现按照时间范围来查找book信息。

使用jsp+servlet+javabean+dao实现学生体质信息管理系统

大体样式如下,我已经将该项目部署到服务器上,网址是http://156.223.25.190:8080/ch_05/index.jsp 在服务器上数据库出了些问题还没解决,只有界面,但是在我电脑上数据库是没有问题的。 此项目连接数据库用的是DButils+cp03的方法。 一、建立jsp页面 几乎每个界面的css是一样的,在此不做重复的代码 index.jsp <%@ page conte...

继续访问

【Java Web开发】DAO和VO

1.pom.xml文件的<dependencies>标签下添加以下代码。 <dependency><groupId>com.microsoft.sqlserver</groupId><artifactId>mssql-jdbc</artifactId><version>7.2....

继续访问

JavaWeb搭建超市管理系统

文章目录SMBMS准备工作登录功能实现登录功能优化密码修改密码验证Ajax用户管理实现用户数量用户列表角色列表 SMBMS 准备工作 搭建一个Maven项目、 配置Tomcat 测试项目能否跑起来 导入项目所需的jar包(servlet,jsp,mysql,jstl,standard…) 创建项目包结构 编写实体类(ORM映射:表—类映射) 编写基础公共类(数据库配置文件) driver=com.mysql.jdbc.driver url=jdbc:mysql://localho

继续访问

用JSP完成简单的图书信息查询系统

目录图书信息查询系统分层结构util包DButil代码bean包Book.java代码action包BookSearchServlet.java代码web.xml配置test包BookTest.java代码WebRoot下jsp页面search.jsp页面bookInfo.jsp页面book表数据浏览器效果search.jsp页面 图书信息查询系统 分层结构 util包 DButil代码 package top.xinsir.utilimport java.sql.Connectionimpor

继续访问

DAO模式实现MySQL数据库对数据的查询

1. 前言 在本人开发的一个系统中需要提供注册和登陆系统,自然需要有用户管理,对用户需要进行基础的增删改查,DAO是常用的设计模式之一,对数据访问进行抽象,可以大大减低不同的数据库之间移植的工作量,本文主要根据本人实现自己DAO模型的过程,讲述DAO设计模式以及本人是如何使用DAO实现对数据的访问的。 2. DAO设计模式 DAO全程是Data Access Object,是

继续访问

java servlet dao_Java Web:JSP+ Servlet+JavaBean+DAO

实例:页面登录1、登录页面的制做做用:实现数据的提交用户:密码:解释:action=“要提交给服务器端在web.xml注册过的servelt的名字”method=“提交给服务器的方法有get、post,这里选择post”user、password:咱们要提交的数据名java2、Sertvlet控制器的实现做用:处理来自客服端的请求,接收登录页面提交的数据并调用JavaBean实例化,接着调用DAO...

继续访问

Servlet、Biz、Dao和Vo关系描述

ServletDome中Servlet、Biz、Dao和Vo关系的简单描述之补充

继续访问

java调用dao_Servlet里面一调用Dao里的某个方法

背景:这几天,由于项目集成的需要,我要在doFilter里调用dao层里的某些方法,可是总之报空指针,只要调用那个dao方法,就报错误。很是纳闷,网上查找了各种原因,终于让我给突破了,看来还是Java基础掌握的不够呀!代码:在servlet中加入私有变量UserDao,然后在servlet的init()方法中初始化一下即可用。private UserDao userDaopublic void ...

继续访问

介绍dao和servlet实现基本功能

java

mysql

数据库设计的基本步骤:

1、系统需求分析与设计。

2、概念结构分析与设计。

3、逻辑结构分析与设计。

4、物理结构分析与设计。

5、系统实施。

6、系统维护。

扩展资料:

数据库设计技巧:

1、原始文件与实体的关系

它可以是一对一,一对多,多对多的关系。一般来说,它们是一对一的关系:一个原始文档只对应于一个实体。在特殊情况下,它们可以是一对多或多对一关系,即一个原始文档对应于多个实体,或者多个原始文档对应于一个实体。

这里的实体可以理解为基本表。在对应关系明确后,对输入接口的设计非常有利。

2、主键和外键

一般来说,实体不能既没有主键也没有外键。在E-R图中,叶中的实体可以定义主键或不定义主键(因为它没有子代),但它必须有外键(因为它有父项)。

主键和外键的设计在全局数据库的设计中起着重要的作用。当全球数据库的设计完成后,一位美国数据库设计专家说:“钥匙无处不在,只有钥匙。”。这是他数据库设计的经验,也体现了他对信息系统核心(数据模型)高度抽象的理念。

因为:主键是一个高度抽象的实体。主键和外键的配对表示实体之间的连接。

3、基本表的属性

基本表不同于中间表和临时表,因为它具有以下四个特点:

原子性。基本表中的字段不可分解。

原始主义。基本表中的记录是原始数据(基本数据)的记录。

演绎的。所有输出数据都可以从基本表和代码表中的数据导出。

稳定。基本表的结构比较稳定,表中的记录要长期保存。

在了解基本表的性质之后,在设计数据库时,可以将基本表与中间表和临时表区分开来。

参考资料来源:百度百科-数据库设计


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10864506.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存