小型自选商场综合管理系统数据库设计

更新时间:2023-09-27 12:41:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

课程设计报告

课程设计题目:小型自选商场综合管理系统数据库设计

专 业: 班 级: 姓 名: 学 号: 指导教师:

年 月 日

一、实验题目:

小型自选商场综合管理系统数据库设计。 二、实验课时: 课外2课时。 三、实验目的:

1.能够正确运用《数据库技术》课程的基本理论和知识,结合一个管理信息系统中的模拟课题,复习、巩固、提高数据库方案设计、论证和分析方法。

2.熟悉关系数据库规范化设计理论,根据实验要求设计并建立科学合理的数据库,正确建立数据库中表与表之间的关系。

3.进一步正确理解数据库设计思路,培养分析问题、解决问题的能力,提高查询资料和撰写书面文件的能力。 四、实验内容和要求 : [系统描述]

小型自选商场综合管理系统应具备进货、销售、库存等基本

管理功能,具体要求如下:

(1)能记录每一笔进货,查询商品的进货记录,并能按月进行统计。

(2)能记录每一笔售货,查询商品的销售情况,并能进行日盘存、月盘存。

(3)能按月统计某个员工的销售业绩。

(4)在记录进货及售货的同时,必须动态刷新库存。 (5)能打印库存清单,查询某种商品的库存情况。 (6)能查询某个厂商或供应商的信息。 (7)能查询某个员工的基本信息。

(8)收银台操作中,能根据输入的商品编号、数量,显示某顾客所购商品的清单,并显示收付款情况。

五、数据库E-R图

供应商号 供应商名 供应商地址 供应商地址 供应商 员工号 员工电话 提供 提供 商品号 进货数量 商品号 商品名称 进货单价 员工 卖出 商品 记录 进货 库存数量 入库状态 单价 库存数量 进货日期 供应商号 员工地址 进行 记录 供应商号 销售 商品号 销售日期 销售数量 库存数量 员工号

六、程序截图及代码 1.程序截图

2.sql数据库代码

use master go

if exists(select * from sysdatabases where name='小型自选商场综合管理系统') /*删除在master中已存*/ /*在的名为酒店管理系统的数据库*/ drop database 小型自选商场综合管理系统 go

--------------------------酒店管理系统的建立-------------------------------- create database 小型自选商场综合管理系统 on primary /*设定系统主文件*/

(name='小型自选商场综合管理系统_data', filename='d:\\小型自选商场综合管理系统.mdf', size=10, maxsize=50, filegrowth=5)

log on /*创建事务日志文件*/ (name='小型自选商场综合管理系统_log', filename='d:\\小型自选商场综合管理系统.ldf', size=5,

maxsize=25, filegrowth=5) go

use 小型自选商场综合管理系统

if exists(select * from sysobjects where name='商品') drop table 商品

go

/*商品信息表*/

CREATE TABLE 商品 /*创建商品信息表*/ (商品号 CHAR(8)PRIMARY KEY, 商品名称 CHAR(10)NOT NULL, 单价 money NOT NULL, 库存数量 int not null, 供应商号 CHAR(8)) go

--------------------------插入商品数据-----------------------

INSERT INTO 商品 VALUES('1001','益达口香糖',5,50,'c1') INSERT INTO 商品 VALUES('1002','可口可乐',6,50,'c2') INSERT INTO 商品 VALUES('1003','餐巾纸',5,50,'c3') INSERT INTO 商品 VALUES('1004','口杯',8,50,'c4')

INSERT INTO 商品 VALUES('1005','黑人牙膏',12,50,'c5') -------------------------------------------------------------- if exists(select * from sysobjects where name='员工') drop table 员工 go

print 'drop table 员工' print 'create table 员工' go

/*员工信息表*/

CREATE TABLE 员工 /*创建员工信息表*/ (员工号 CHAR(8) PRIMARY KEY, 员工姓名 CHAR(8)NOT NULL, 员工电话 CHAR(8) NOT NULL) go

-----------------------插入员工数据---------------------- INSERT INTO 员工 VALUES('101','赵一','12345') INSERT INTO 员工 VALUES('102','王二','23456') INSERT INTO 员工 VALUES('103','张三','34567') INSERT INTO 员工 VALUES('104','李四','45678') INSERT INTO 员工 VALUES('105','王五','56789') --------------------------------------------------------------

if exists(select * from sysobjects where name='供应商') drop table 供应商 go

print 'drop table 供应商' print 'create table 供应商' go

CREATE TABLE 供应商 /*创建供应商信息表*/ (供应商号 CHAR(8),

供应商名 CHAR(8), 供应商地址 char(10), 供应商电话 char(12)) go

---------------插入供应商信息数据----------------------

INSERT INTO 供应商 VALUES('s101','一','一路','1234') INSERT INTO 供应商 VALUES('s102','二','二路','2345') INSERT INTO 供应商 VALUES('s103','三','三路','3456') INSERT INTO 供应商 VALUES('s104','四','四路','5678') go

if exists(select * from sysobjects where name='销售') drop table 销售 go

print 'drop table 销售' print 'create table 销售' go

CREATE TABLE 销售 /*创建销售信息表*/ (商品号 CHAR(8), 销售数量 int, 库存数量 int,

销售日期 datetime, 员工号 char(8)) go

---------------插入销售信息数据----------------------

INSERT INTO 销售 VALUES('1001',4,10,2012-01-02,'101') INSERT INTO 销售 VALUES('1002',5,20,2012-01-03,'102') INSERT INTO 销售 VALUES('1003',6,30,2012-01-04,'103') INSERT INTO 销售 VALUES('1004',7,20,2012-01-05,'104') go

if exists(select * from sysobjects where name='进货') drop table 进货 go

print 'drop table 进货' print 'create table 进货' go

CREATE TABLE 进货 /*创建进货信息表*/ (商品号 CHAR(8), 进货数量 int,

库存数量 int, 进货单价 money, 进货日期 datetime, 入库状态 char(2), 供应商号 char(8)) go

---------------插入进货信息数据----------------------

INSERT INTO 进货 VALUES('1001',4,10,3,2012-01-02,'是','s101') INSERT INTO 进货 VALUES('1002',5,20,4,2012-01-03,'是','s102') INSERT INTO 进货 VALUES('1003',6,30,5,2012-01-04,'是','s103') INSERT INTO 进货 VALUES('1004',7,20,6,2012-01-05,'否','s104') go

CREATE UNIQUE INDEX UKF ON 商品(商品号,单价) go

CREATE UNIQUE INDEX UKH ON 员工(员工号,员工电话) go

CREATE UNIQUE INDEX URZ ON 供应商(供应商号,供应商电话) go

CREATE UNIQUE INDEX URZ ON 销售(商品号,销售数量) go

CREATE UNIQUE INDEX URZ ON 进货(商品号,进货数量) go

if exists (select * from sysobjects where name='进货触发器') drop trigger 进货触发器 GO

CREATE TRIGGER 进货触发器 ON 进货 after INSERT AS

DECLARE @insert_account int DECLARE @insert_id char(10) DECLARE @insert_state char(2)

set @insert_account=(select [进货数量] from inserted) set @insert_id=(select [商品号] from inserted)

set @insert_state=(select [入库状态] from inserted) BEGIN

DECLARE @account int

set @account =(select 库存数量 from 商品 where 商品号=@insert_id) if @insert_state=N'是'

update 商品 set 库存数量=@account+@insert_account where 商品号

=@insert_id

if @insert_state=N'否'

update 商品 set 库存数量=@account where 商品号=@insert_id end

if exists (select * from sysobjects where name='销售触发器') drop trigger 销售触发器 GO

CREATE TRIGGER 销售触发器 ON 销售 after INSERT AS

DECLARE @sale_account int DECLARE @insert_id char(10)

set @sale_account=(select [销售数量] from inserted) set @insert_id=(select [商品号] from inserted) BEGIN

DECLARE @account int

set @account =(select 库存数量 from 商品 where 商品号=@insert_id) update 商品 set 库存数量=@account-@sale_account where 商品号=@insert_id end

------------------------------------创建查询视图----------------------------------------------- if exists (select * from sysobjects where name='商品信息查询') drop VIEW 商品信息查询 GO

CREATE VIEW 商品信息查询

AS SELECT 商品.商品号,商品.商品名称,商品.单价,商品.库存数量,进货.进货单价,商品.供应商号,供应商.供应商名,供应商.供应商地址,供应商.供应商电话 FROM 商品,供应商,进货

WHERE 商品.供应商号=供应商.供应商号 and 进货.商品号=商品.商品号 go

----------------------------------------建立存储过程

-----------------------------------------------

if exists(select * from sysobjects where name='proc1') drop proc proc1 go

create proc proc1( @商品_id char(10)) as

select 库存数量 from 商品

where 商品号=@商品_id GO

if exists(select * from sysobjects where name='proc2') drop proc proc2 go

create proc proc2( @商品_id char(10), @供货_月 char(2)) AS

select SUM(供货.供货数量)AS [月供货量]

from 商品 INNER JOIN 供货 ON 商品.商品号 = 供货.商品号 where 商品.商品号=@商品_id and month(供货.供货日期)=@供货_月 GO

if exists(select * from sysobjects where name='proc3') drop proc proc3 go

create proc proc3( @商品_id char(10)) AS

select 供应商.供应商名,供应商.供应商地址,供应商.供应商电话

from 商品 INNER JOIN 厂商 ON 商品.供应商号 = 供应商.供应商号 where 商品.商品号=@商品_id GO

if exists(select * from sysobjects where name='proc4') drop proc proc4 go

create proc proc4( @商品_id char(10), @销售日期 datetime ) as

select 销售.销售日期,SUM(销售.销售数量)AS [日销售量]

from 商品 INNER JOIN 销售 ON 商品.商品号 = 销售.商品号 group by 商品.商品号,销售.销售日期

having 商品.商品号=@商品_id and 销售.销售日期=@销售日期;

if exists(select * from sysobjects where name='proc5') drop proc proc5 go

create proc proc5( @商品_id char(10),

@销售日期_月 char(2)) as

select 销售.销售日期,销售.销售数量

from 商品 INNER JOIN 销售 ON 商品.商品号 = 销售.商品号

where 商品.商品号=@商品_id and month(销售.销售日期)=@销售日期_月;

if exists(select * from sysobjects where name='proc6') drop proc proc6 go

create proc proc6( @销售员_id char(10)) as

select 销售员.* from 销售员

where 销售员.销售员号=@销售员_id

if exists(select * from sysobjects where name='proc7') drop proc proc7 go

create proc proc7( @销售员_id char(10), @销售日期_月 char(2) ) as

select 销售.销售员号,商品.商品名,销售.销售日期,销售.销售数量,(销售.实付总额) as [日销售业绩额]

from 商品 INNER JOIN (销售员 INNER JOIN 销售 ON 销售员.销售员号 = 销售.销售员号) ON 商品.商品号=销售.商品号

where 销售员.销售员号=@销售员_id and month(销售.销售日期)=@销售日期_月

3.vb源代码

'form1

Private Sub Command1_Click()

If Text1.Text = \Form2.Show Unload Me Else

MsgBox \账号或密码有误,请重新输入!\错误提示\End If End Sub

Private Sub Command2_Click() Unload Me

End Sub

'form2

Private Sub Command1_Click() Form3.Show Unload Me End Sub

Private Sub Command2_Click() Form4.Show Unload Me End Sub

Private Sub Command3_Click() Form5.Show Unload Me End Sub

Private Sub Command4_Click() Form6.Show Unload Me End Sub

Private Sub Command5_Click() Form7.Show Unload Me End Sub

Private Sub Command6_Click() Form8.Show Unload Me End Sub

Private Sub Command8_Click() Unload Me End Sub

'form3

Private Sub Command1_Click() Adodc1.Refresh

本文来源:https://www.bwwdw.com/article/0b4d.html

Top