报刊订阅管理系统数据库
来源:互联网 发布:数据分析的算法 编辑:程序博客网 时间:2024/05/02 21:26
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)NOTNULL,
[AdName][nchar](10)NOTNULL,
[AdPassword][nchar](50)NOTNULL,
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)NOTNULL,
[UName][nvarchar](50)NOTNULL,
[UPassword][nchar](10)NOTNULL,
[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)NOTNULL
)ON[PRIMARY]
(4)报刊类别的建立
CREATETABLE[dbo].[NewspaperClass](
[ClassID][int]IDENTITY(1,1)NOTNULL,
[ClassName][nvarchar](50)NOTNULL,
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)NOTNULL,
[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)NOTNULL,
[UserName][nchar](10)NOTNULL,
[NewspaperName][nchar](10)NULL,
[Count][int]NULL,
[Month][int]NULL,
CONSTRAINT[PK_Order]PRIMARYKEYCLUSTERED
(
[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)NOTNULL,
[AdName][nchar](10)NOTNULL,
[AdPassword][nchar](50)NOTNULL,
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)NOTNULL,
[UName][nvarchar](50)NOTNULL,
[UPassword][nchar](10)NOTNULL,
[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)NOTNULL
)ON[PRIMARY]
(4)报刊类别的建立
CREATETABLE[dbo].[NewspaperClass](
[ClassID][int]IDENTITY(1,1)NOTNULL,
[ClassName][nvarchar](50)NOTNULL,
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)NOTNULL,
[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)NOTNULL,
[UserName][nchar](10)NOTNULL,
[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,>)
- 报刊订阅管理系统数据库
- 报刊
- 数据库订阅
- 数据库管理系统的管理
- 常见数据库管理系统
- 数据库管理系统
- 数据库系统内存管理
- 酒店管理系统数据库
- 数据库管理系统
- Firebird 数据库管理系统
- 【数据库】图书管理系统
- 数据库管理系统 -DBMS
- 数据库管理系统
- MariaDB数据库管理系统
- 计算机数据库管理系统
- 数据库管理系统
- 数据库管理系统截图
- 【数据库】管理系统
- android.view.setTag
- linux内核内存管理学习之二(物理内存管理--伙伴系统)
- Socket通信实验
- [只有创业者才能告诉你的故事]有感
- 根据当前日期 获取 本周 ,本月 的起止日期
- 报刊订阅管理系统数据库
- linux内核内存管理学习之三(slab分配器)
- Working with DataFrames
- 回收带Lob字段表占用的空间
- java:java中设置程序外观的方法
- 生成范围内的不相同的随机数
- Java中用原生ZipInputStream压缩加压zip文件
- java对话框选择图片,并显示到lable上
- Java中的Action练习,java输入