1、   前言(课程设计的目的、意义、要求) 

本系统主要有以下功能模块:

(1)登陆功能:登陆系统为身份验证登录。分为管理员登录和一般用户登录。分别通过不同的用户名和密码进入报刊订阅管理界面,新的用户需要注册。

(2)录入新信息功能:对于管理员,包括新用户信息和新报刊信息的录入功能,信息一旦提交就存入到后台数据库中;普通用户自行注册进行可以修改个人信息。

(3)订阅功能:用户可以订阅报刊,系统自动计算所需金额,并显示在界面上;管理员不可订阅报刊,必须以用户身份订阅报刊。

(4)查询功能:用户可以查询并显示自己所订阅的信息;管理员可以按人员、报刊、部门分类查询。查询出的信息显示在界面上,并且可以预览和打印出结果。

(5)统计功能:管理员可以按用户、部门、报刊统计报刊的销售情况,并对一些重要的订阅信息进行统计;普通用户可以统计出自己的订阅情况,并且可以预览和打印出结果。

(6)系统维护功能:数据的安全管理,主要是依靠管理员对数据库里的信息进行备份和恢复,数据库备份后,如果出了什么意外可以恢复数据库到当时备份的状态,这提高了系统和数据的安全性,有利于系统的维护

 

2、 需求分析 

参考如下:

报刊订阅管理系统包括如下功能:(结构图如下)

(1) 登录和注册:登录判断帐号为管理员或普通用户,注册新的普通用户

(2) 管理员录入新信息:管理员登录后,可以录入新的报刊信息

(3) 用户修改自身信息:普通用户登录后可以查看自身信息,并进行资料修改

(4) 查询信息:普通用户可以查询报刊信息,并进行订阅。管理员可以分类查询报刊信息,用户信息

(5) 用户可以查阅自己的订阅信息;管理员可以查阅销售信息。

3、 数据库概念结构设计 

参考如下:

报刊管理:

管理员(Adminuser):管理员名,密码;

部门(Department):部门号,部门名;

用户表(User):用户帐号UserID,密码,真实姓名,身份证、联系号码、联系地址、部门号;

报刊类别表(NewspaperClass):分类编号、分类名称;

报刊信息表(Newspaper):报刊号、报刊名称、出版社、出版周期、季度报价、内容介绍、分类编号;

订单表(Order):订单编号、用户编号(UsrID)、报刊号、订阅数、订阅月数;

(2) 实体间的联系:

 部门与用户之间是1:n的联系;

 报刊类别与报刊之间也是1:m(m≥0)的联系;     

订单与用户之间也是m:n的联系;

订单与报刊之间则是m:n的关系。

(3) 人事管理子系统的E-R图:

1            n

 
 

1                          1

m          m        n       n

4、 数据库逻辑结构设计 

参考如下:

(1) 逻辑结构设计图型描述:

(2)逻辑结构设计列表描述

序号

表名

中文名

作用

1

Adminuser

管理员信息

记录管理员的帐号和密码

2

Department

部门信息

部门分类

3

ForUsers

用户表

存储用户信息

4

NewspaperClass

报刊类别

存储报刊类别

5

Newspaper

报刊

存储报刊信息

6

Order

订单

用户订阅信息

5、 数据库实现 

参考如下:

5.1建立数据库、数据表、视图、索引

5.1.1建立数据库

create database Newspaper;

5.1.2建立数据表

(1)管理员信息表的建立:

CREATETABLE [dbo].[Adminstor](

[AdID] [int]IDENTITY(1,1)NOT NULL,

[AdName] [nchar](10)NOT NULL,

[AdPassword] [nchar](50)NOT NULL,

CONSTRAINT[PK_Adminstor] PRIMARYKEYCLUSTERED

(

[AdID] ASC

)WITH(PAD_INDEX = OFF,STATISTICS_NORECOMPUTE  =OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS =ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]

)ON [PRIMARY]

(2)用户信息表的建立:

CREATETABLE [dbo].[ForUsers](

[UID] [int]IDENTITY(1,1)NOT NULL,

[UName] [nvarchar](50)NOT NULL,

[UPassword] [nchar](10)NOT NULL,

[RealName] [nchar](10)NULL,

[IDCard] [nvarchar](50)NULL,

[Telephone] [nvarchar](50)NULL,

[Address] [nvarchar](50)NULL,

[DepartmentID] [int]NULL,

CONSTRAINT[PK_ForUsers]PRIMARYKEY CLUSTERED

(

[UID] ASC

)WITH(PAD_INDEX = OFF,STATISTICS_NORECOMPUTE  =OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS =ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]

)ON [PRIMARY]

(3)部门信息表的建立

CREATETABLE [dbo].[Department](

[DepartmentID] [int]NOT NULL,

[DepartmentName] [nchar](10)NOT NULL

)ON [PRIMARY]

(4)报刊类别的建立

CREATETABLE [dbo].[NewspaperClass](

[ClassID] [int]IDENTITY(1,1)NOT NULL,

[ClassName] [nvarchar](50)NOT NULL,

CONSTRAINT[PK_NewspaperClass]PRIMARYKEY CLUSTERED

(

[ClassID] ASC

)WITH(PAD_INDEX = OFF,STATISTICS_NORECOMPUTE  =OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS =ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]

)ON [PRIMARY]

(5)报刊信息的建立

CREATETABLE [dbo].[Newspaper](

[NewspaperID] [int]NOT NULL,

[NewspaperName] [nvarchar](50)NOT NULL,

[Public] [nvarchar](50)NULL,

[PublicTime] [date]NULL,

[Cost] [money]NOT NULL,

[About] [nvarchar](max)NULL,

[ClassID] [int]NOT NULL

)ON [PRIMARY]

(6)订单信息表的建立

CREATETABLE [dbo].[Order1](

[OrderID] [int]IDENTITY(1,1)NOT NULL,

[UserName] [nchar](10)NOT NULL,

[NewspaperName] [nchar](10)NULL,

[Count] [int]NULL,

[Month] [int]NULL,

CONSTRAINT[PK_Order]PRIMARYKEY CLUSTERED

(

[OrderID] ASC

)WITH(PAD_INDEX = OFF,STATISTICS_NORECOMPUTE  =OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS =ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]

)ON [PRIMARY]

5.2数据入库

系统包括登录注册,录入信息,管理自身信息,查询和订阅报刊信息,统计订阅信息五大功能模块,共有6张基本表,牵涉到大量数据的录入。在这里采用少数用例进行演示。

5.3创建各个功能的存储过程

6、 运行结果(包括系统测试)

     登录(管理员登录和普通用户)

 

 

录入报刊信息

查询报刊信息:

用户查询订阅信息:

管理员查询信息:

 

 

 

7、 数据库设计经验教训总结

本次课程设计,我是用C#结合SQL server来完成的。

制作期间,我遇到了很多的问题,比如Mysql的语法与SQL serveer的不同,之前的Natural join在这边不适用了;数据库定义中关键字Order的使用,让我久久不能找出Bug……不过SQL server的视图化的运用,使得工作变得更加有效率。

通过本次实验,我学习了SQL server的新的语法和其数据库的使用,与C#结合,在VS2010的平台上进行了实践,对数据库的掌握有了进一步的了解,对C#也有了更进一步的学习。

附录1数据库逻辑结构定义

参考如下:

1.      管理员、用户基本信息表,用于记录其基本信息:

2.      报刊(Newspaper)基本信息表,用于记录报刊的基本信息:

3.      订单(Order)基本信息表,用于记录订单的基本信息:

附录2存储过程定义

参考如下:

1.p1Adminuser_Insert的定义:

INSERTINTO [Newspaper].[dbo].[Adminstor]

([AdName]

,[AdPassword])

VALUES

(<AdName,nchar(10),>

,<AdPassword,nchar(50),>)

2.ForUser_Insert的定义:

INSERTINTO [Newspaper].[dbo].[ForUsers]

([UName]

,[UPassword]

,[RealName]

,[IDCard]

,[Telephone]

,[Address]

,[DepartmentID])

VALUES

(<UName,nvarchar(50),>

,<UPassword,nchar(10),>

,<RealName,nchar(10),>

,<IDCard,nvarchar(50),>

,<Telephone,nvarchar(50),>

,<Address,nvarchar(50),>

,<DepartmentID,int,>)

4.    Newspaper_insert的定义

INSERTINTO [Newspaper].[dbo].[Newspaper]

([NewspaperID]

,[NewspaperName]

,[Public]

,[PublicTime]

,[Cost]

,[About]

,[ClassID])

VALUES

(<NewspaperID,int,>

,<NewspaperName,nvarchar(50),>

,<Public,nvarchar(50),>

,<PublicTime,date,>

,<Cost,money,>

,<About,nvarchar(max),>

,<ClassID,int,>)

附录3数据查看和存储过程功能的验证

1.基本表的数据查看(基于视图查询,以SQL Server为例):

1)        查看Adminuser表中的数据:

2)        查看用户表中的数据:

2.存储过程功能的验证:

1)        存储过程Newspaper_Insert功能的验证:

附录4所有的SQL运行语句

(1)管理员信息表的建立:

CREATETABLE [dbo].[Adminstor](

[AdID] [int]IDENTITY(1,1)NOT NULL,

[AdName] [nchar](10)NOT NULL,

[AdPassword] [nchar](50)NOT NULL,

CONSTRAINT[PK_Adminstor] PRIMARYKEYCLUSTERED

(

[AdID] ASC

)WITH(PAD_INDEX = OFF,STATISTICS_NORECOMPUTE  =OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS =ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]

)ON [PRIMARY]

(2)用户信息表的建立:

CREATETABLE [dbo].[ForUsers](

[UID] [int]IDENTITY(1,1)NOT NULL,

[UName] [nvarchar](50)NOT NULL,

[UPassword] [nchar](10)NOT NULL,

[RealName] [nchar](10)NULL,

[IDCard] [nvarchar](50)NULL,

[Telephone] [nvarchar](50)NULL,

[Address] [nvarchar](50)NULL,

[DepartmentID] [int]NULL,

CONSTRAINT[PK_ForUsers] PRIMARYKEYCLUSTERED

(

[UID] ASC

)WITH(PAD_INDEX = OFF,STATISTICS_NORECOMPUTE  =OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS =ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]

)ON [PRIMARY]

(3)部门信息表的建立

CREATETABLE [dbo].[Department](

[DepartmentID] [int]NOT NULL,

[DepartmentName] [nchar](10)NOT NULL

)ON [PRIMARY]

(4)报刊类别的建立

CREATETABLE [dbo].[NewspaperClass](

[ClassID] [int]IDENTITY(1,1)NOT NULL,

[ClassName] [nvarchar](50)NOT NULL,

CONSTRAINT[PK_NewspaperClass] PRIMARYKEYCLUSTERED

(

[ClassID] ASC

)WITH(PAD_INDEX = OFF,STATISTICS_NORECOMPUTE  =OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS =ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]

)ON [PRIMARY]

(5)报刊信息的建立

CREATETABLE [dbo].[Newspaper](

[NewspaperID] [int]NOT NULL,

[NewspaperName] [nvarchar](50)NOT NULL,

[Public] [nvarchar](50)NULL,

[PublicTime] [date]NULL,

[Cost] [money]NOTNULL,

[About] [nvarchar](max)NULL,

[ClassID] [int]NOT NULL

)ON [PRIMARY]

(6)订单信息表的建立

CREATETABLE [dbo].[Order1](

[OrderID] [int]IDENTITY(1,1)NOT NULL,

[UserName] [nchar](10)NOT NULL,

[NewspaperName] [nchar](10)NULL,

[Count] [int]NULL,

[Month] [int]NULL,

CONSTRAINT[PK_Order] PRIMARYKEY CLUSTERED

(

[OrderID] ASC

)WITH(PAD_INDEX = OFF,STATISTICS_NORECOMPUTE  =OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS =ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]

)ON [PRIMARY]

1.p1Adminuser_Insert的定义:

INSERTINTO [Newspaper].[dbo].[Adminstor]

([AdName]

,[AdPassword])

VALUES

(<AdName,nchar(10),>

,<AdPassword,nchar(50),>)

2.ForUser_Insert的定义:

INSERTINTO [Newspaper].[dbo].[ForUsers]

([UName]

,[UPassword]

,[RealName]

,[IDCard]

,[Telephone]

,[Address]

,[DepartmentID])

VALUES

(<UName,nvarchar(50),>

,<UPassword,nchar(10),>

,<RealName,nchar(10),>

,<IDCard,nvarchar(50),>

,<Telephone,nvarchar(50),>

,<Address,nvarchar(50),>

,<DepartmentID,int,>)

5.    Newspaper_insert的定义

INSERTINTO [Newspaper].[dbo].[Newspaper]

([NewspaperID]

,[NewspaperName]

,[Public]

,[PublicTime]

,[Cost]

,[About]

,[ClassID])

VALUES

(<NewspaperID,int,>

,<NewspaperName,nvarchar(50),>

,<Public,nvarchar(50),>

,<PublicTime,date,>

,<Cost,money,>

,<About,nvarchar(max),>

,<ClassID,int,>)

报刊订阅管理系统数据库相关推荐

  1. java+ssh+mysql报刊订阅管理系统

    项目介绍: 本系统为基于jsp+mysql的一个报刊订阅管理系统,包含用户和管理员登录权限,系统功能如下: 前台:用户可以注册.登录.查看报刊分类.报刊列表.报刊详情.个人信息.加入购物车.下单等功能 ...

  2. Java基于JSP的报刊订阅管理系统

    随着人类的发展,人们对信息的获取方式也越来越多,虽然很多时候人们习惯了通过手机来获取各类信息,但是手机也逐渐的成为了危害人类健康的杀手之一,为了能够让大家回归到健康的生活中来,我开发了本系统,旨在让大 ...

  3. 系统数据据结库设计理论mysql_基于JavaEE的报刊征订管理系统_JSP网站设计_MySQL数据库设计...

    目  录 摘  要I ABSTRACTII 第一章 绪论1 1.1课题背景1 1.2目的和意义1 1.3开发工具及技术1 1.3.1开发工具1 1.3.2 JSP技术2 1.3.3 JavaScrip ...

  4. [附源码]PHP计算机毕业设计-报刊征订管理系统(程序+LW)

    [附源码]PHP计算机毕业设计-报刊征订管理系统(程序+LW) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程.欢迎交流 项目运行 环境配置: PHP+ Vscode + Mysql5 ...

  5. 电影院票务管理系统数据库设计(1)

    这两天听到一道面试题:设计一个电影院票务管理系统的表结构. 挺有意思的,我自己也试着做了一做,感觉还是有不少收获的.在本文中我想把做这道题的整个思路重新理一下,也算做个整理了. 现在能得到的需求只有一 ...

  6. 电影院票务管理系统数据库设计(2)

    在电影院票务管理系统数据库设计(1)中我们从一道面试题展开,最后给出如下影院票务管理系统的表关系图 以上的设计是否易用? 首先想一下订票最简单的过程,不包括意外情况. 顾客先来到柜台,跟柜台服务员说要 ...

  7. 【数据库】数据库基本概念:数据库管理系统 / 数据库 / 表 / 数据

    0 前言 本文讲解数据库的最基本概念 推荐书籍:<MySQL 必知必会> 需要的软件:MySQL 8.0 1 数据库相关概念及其实战应用 1.1 数据(Data) 在人类世界中,数据可以是 ...

  8. sql数据库 订阅发布_如何使用中央发布者和多个订阅者数据库设置自定义SQL Server事务复制

    sql数据库 订阅发布 In this article, you'll learn how to setup a simple, custom distributed database replica ...

  9. 杂志订阅管理系统c语言实训报告,C语言程序设计报告—杂志订阅管理软件、、.doc...

    C语言程序设计报告-杂志订阅管理软件.. 中国地质大学(武汉)C语言课程设计报告 学 院: 专 业: 题 目: 杂志订阅管理系统 班 级: 姓 名: 学 号: 指导教师: 2011年1月9日 程序在最 ...

  10. 固定资产管理mysql_固定资产管理系统数据库设计

    固定资产管理系统数据库设计 如何看待固定资产管理系统数据库设计呢?近年来越来越多的企业在资产管理方面投入着更多的精力,主要就是因资产管理是企业生产经营活动中比较重要的环节.而其中固定资产又是企业中资产 ...

最新文章

  1. python 装饰器示例
  2. Shell编程基础---函数、数组
  3. Excel加密的Sheet如何hack
  4. ansible之setup模块常用的信息
  5. NSTableView使用笔记(一)
  6. Java中的 Switch 是如何支持 String 的?为什么不支持 long?
  7. 剑桥制造学院下的研究硕士项目!
  8. 文件上传获取file的全路径名_Java中的File类与I/O流
  9. js封装函数_JavaScript基础-如何封装函数来改变元素的位置
  10. java五星好评点评器_亲,麻烦给个五星好评!—RatingBar
  11. Qt的信号槽机制介绍(含Qt5与Qt4的差异对比)
  12. yolox: AssertionError: Caught AssertionError in DataLoader worker process 0.
  13. promise用法_图解 Promise 实现原理(一)—— 基础实现
  14. ASP.NET 封装JS文件到DLL中并在页面中调用
  15. c++语言偶数分离,在C++的链表中分离偶数和奇数节点
  16. 记录:编译opencv-4.1.0、opencv_contrib-4.1.0、dense_flow过程
  17. stringbuilder为什么线程不安全_String Builder 为什么线程不安全?
  18. 谈谈坚持写博客的感悟
  19. AlphaGo来了,终结者不远了
  20. 前端js实现批量下载文件

热门文章

  1. 广告学概论--名词解释
  2. 浅谈mian函数的参数解析
  3. [估值-001] 净资产收益率和现值的关系
  4. 论文笔记SKEP: Sentiment Knowledge Enhanced Pre-training for Sentiment Analysis
  5. RAR文件格式学习(了解)
  6. 【问题解决】Ubuntu无法进入图形页面,全屏出现OK,而且屏幕不停闪烁
  7. 请没有买房和买车的朋友一定认真的看一下,看后再做决定吧..
  8. oracle的lpad函数
  9. 1-10000水仙花数
  10. Android视频媒体播放器