当前位置:文档之家› 《数据库原理及应用》

《数据库原理及应用》

《数据库原理及应用》
《数据库原理及应用》

《数据库原理及应用》

课程设计报告

仓库管理数据库设计

班级:05计本(4)班

学号:53

姓名:余韬

指导教师:王建颖

成绩:___________________

2007年12月29 日

需求分析

1. 前言

1.1目的

作为进销存软件设计文档的重要组成部分,本文档主要对该软件后台数据库的概念模型设计和物理模型设计作出了统一的规定,同时确定了每个表的数据字典结构。它是开发人员,测试人员编码及测试的重要参考依据。

●学会对应用环境的需求分析,系统分析,掌握数据库设计的方法和步骤;

●掌握概念模型,关系模型的设计;

●掌握SQL SERVER数据库管理系统的功能及操作方法;

●充分理解数据库理论在具体关系数据库管理系统软件产品的实现方法,采用的机制和策略;

●掌握开发CLIENT/SERVER 结构的数据库应用系统的方法和技术.

1.2背景

项目名称:仓库管理数据库设计

项目提出者:余韬

开发者:余韬

1.4参考资料

《数据库系统实用教程》

概念设计

1.关联设计及EE-R图

2. 系统ER图说明

1)商店中的所有用户(员工)可以销售多种商品,每种商品可由不同用户(员工)销售;

2)每个顾客可以购买多种商品,不同商品可由不同顾客购买;

3)每个供货商可以供应多种不同商品,每种商品可由多个供应商供应。

3. 视图设计

1)交易视图(v_Dealing)——用于查询交易情况的视图;

2)计划进货视图(v_PlanStock)——用于查询进货计划的视图;

3)销售视图(v_Sale)——用于查询销售明细记录的视图;

4)入库视图(v_Stock)——用于查询入库情况的视图。

逻辑设计

1. 系统关系模型

a)商品信息表(商品编号,商品名称,价格,条形码,促销价格,促销起日期,促销止日期,允许

打折,库存数量,库存报警数量,计划进货数,允许销售,厂商编号,供货商编号)

b)用户表(用户编号,用户名称,用户密码,用户类型)

c)会员表(会员编号,会员卡号,累积消费金额,注册日期)

d)销售表(销售编号,商品编号,销售数量,销售金额,销售日期)

e)交易表(交易编号,用户名称,交易金额,会员卡号,交易日期)

f)进货入库表(入库编号,入库商品编号,入库数量,单额,总额,入库日期,计划进货日期,入

库状态)

g)供货商表(供货商编号,供货商名称,供货商地址,供货商电话)

h)厂商表(厂商编号,厂商名称,厂商地址,厂商电话)

2. 系统数据库表结构

数据库表索引

商品信息表(MerchInfo)

用户表(User)

会员表(Menber)

销售表(Sale)

交易表(Dealing)

入库纪录表(Stock)

供货商表(Provide)

厂商表(Provide)

3. SQL代码

/*----------创建数据库----------*/

create database SuperMarketdb

on primary

(

name=SuperMarketdb,

filename='C:\Program Files\Microsoft SQL Server\MSSQL\Data\SuperMarketdb.mdf', size=100MB,

maxsize=200MB,

filegrowth=20MB

)

log on

(

name=SuperMarketlog,

filename='C:\Program Files\Microsoft SQL Server\MSSQL\Data\SuperMarketdb.ldf', size=60MB,

maxsize=200MB,

filegrowth=20MB

)

go

/*----------创建基本表----------*/

use [SuperMarketdb]

go

/*创建交易表*/

CREATE TABLE Dealing (

DealingID int identity(1,1) Primary key , DealingDate datetime NOT NULL ,

DealingPrice money NOT NULL ,

UserName varchar(25) NULL ,

MemberCard varchar(20) NULL

)

GO

/*创建厂商表*/

CREATE TABLE Factory (

FactoryID varchar(10) Primary key ,

FactoryName varchar(50) NOT NULL ,

FactoryAddress varchar(250) NULL ,

FactoryPhone varchar(50) NULL

)

GO

/*创建会员表*/

CREATE TABLE Member (

MemberID varchar(10) Primary key ,

MemberCard varchar(20) NOT NULL ,

TotalCost money NOT NULL ,

RegDate datetime NOT NULL

)

GO

/*创建商品信息表*/

CREATE TABLE MerchInfo (

MerchID int identity(1,1) Primary key ,

MerchName varchar(50) Unique NOT NULL ,

MerchPrice money NOT NULL ,

MerchNum int NOT NULL ,

CautionNum int NOT NULL ,

PlanNum int NOT NULL ,

BarCode varchar(20) Unique NOT NULL ,

SalesProPrice money NULL ,

SalesProDateS datetime NULL ,

SalesProDateE datetime NULL ,

AllowAbate int NOT NULL ,

AllowSale int NOT NULL ,

FactoryID int NOT NULL ,

ProvideID int NOT NULL

)

GO

/*创建供应商表*/

CREATE TABLE Provide (

ProvideID varchar(10) Primary key ,

ProvideName varchar(50) NOT NULL ,

ProvideAddress varchar(250) NULL ,

ProvidePhone varchar(25) NULL

)

GO

/*创建销售表*/

CREATE TABLE Sale (

SaleID int identity(1,1) Primary key ,

MerChID int NOT NULL ,

SaleDate datetime NOT NULL ,

SaleNum int NOT NULL,

SalePrice money NOT NULL

)

GO

/*创建入库表*/

CREATE TABLE Stock (

StockID int identity(1,1) Primary key ,

MerchID int NOT NULL ,

MerchNum int NOT NULL ,

MerchPrice money NULL ,

TotalPrice money NULL ,

PlanDate datetime NULL ,

StockDate datetime NULL,

StockState int NOT NULL

)

GO

/*创建用户表*/

CREATE TABLE User (

UserID varchar(10) Primary key ,

UserName varchar(25) NOT NULL ,

UserPW varchar(50) NOT NULL ,

UserStyle int NOT NULL ,

)

GO

/*----------创建表间约束----------*/

/*商品信息表中厂商编号、供应商编号分别与厂商表、供应商表之间的外键约束*/ ALTER TABLE MerchInfo ADD

CONSTRAINT [FK_MerchInfo_Factory] FOREIGN KEY

(

[FactoryID]

) REFERENCES Factory (

[FactoryID]

),

CONSTRAINT [FK_MerchInfo_Provide] FOREIGN KEY

(

[ProvideID]

) REFERENCES Provide (

[ProvideID]

)

GO

/*销售表中商品编号与商品信息表之间的外键约束*/

ALTER TABLE Sale ADD

CONSTRAINT [FK_Sale_MerchInfo] FOREIGN KEY

(

[MerChID]

) REFERENCES MerchInfo (

[MerchID]

) ON DELETE CASCADE

GO

/*入库表中商品编号与商品信息表之间的外键约束*/

ALTER TABLE Stock ADD

CONSTRAINT [FK_Stock_MerchInfo] FOREIGN KEY

(

[MerchID]

) REFERENCES MerchInfo (

[MerchID]

) ON DELETE CASCADE

GO

/*----------创建索引----------*/

/*在交易表上建立一个以交易编号、交易日期为索引项的非聚集索引*/

CREATE nonclustered INDEX IX_Dealing ON Dealing(DealingID, DealingDate) GO

/*在商品信息表上建立一个以商品编号为索引项的非聚集索引*/

CREATE nonclustered INDEX IX_MerchInfo ON MerchInfo(MerchID)

GO

/*在销售表上建立一个以销售编号、销售日期为索引项的非聚集索引*/

CREATE nonclustered INDEX IX_Sale ON Sale(SaleID, SaleDate)

GO

/*在入库表上建立一个以入库编号、入库日期、商品编号为索引项的非聚集索引*/ CREATE nonclustered INDEX IX_Stock ON Stock(StockID, StockDate, MerchID) GO

/*----------创建视图----------*/

/*创建用于查询交易情况的视图*/

CREATE VIEW v_Dealing

AS

SELECT DealingDate as 交易日期,

UserName as 员工名称,

MemberCard as 会员卡号,

DealingPrice as 交易金额

FROM Dealing

GO

/*创建用于查询进货计划的视图*/

CREATE VIEW v_PlanStock

AS

SELECT Stock.StockID as SID,

MerchInfo.MerchName as 商品名称,

MerchInfo.BarCode as 条形码,

Factory.FactoryName as 厂商,

Provide.ProvideName as 供货商,

Stock.MerchNum as 计划进货数量,

Stock.PlanDate as 计划进货日期

FROM Stock,MerchInfo,Provide,Factory

Where Stock.MerchID = MerchInfo.MerchID

and Provide.ProvideID=MerchInfo.ProvideID

and Factory.FactoryID=MerchInfo.FactoryID

and Stock.StockState=0

GO

/*创建用于查询销售明细记录的视图*/

CREATE VIEW v_Sale

AS

SELECT MerchInfo.MerchName as 商品名称,

MerchInfo.BarCode as 条形码,

MerchInfo.MerchPrice as 商品价格,

Sale.SalePrice as 销售价格,

Sale.SaleNum as 销售数量,

Sale.SaleDate as 销售日期

FROM Sale INNER JOIN

MerchInfo ON Sale.MerChID = MerchInfo.MerchID GO

/*创建用于查询入库情况的视图*/

CREATE VIEW v_Stock

AS

SELECT MerchInfo.MerchName as 商品名称,

MerchInfo.BarCode as 条形码,

Factory.FactoryName as 厂商,

Provide.ProvideName as 供货商,

Stock.MerchPrice as 入库价格,

Stock.MerchNum as 入库数量,

Stock.TotalPrice as 入库总额,

Stock.StockDate as 入库日期

FROM Stock,MerchInfo,Provide,Factory

Where Stock.MerchID = MerchInfo.MerchID

and Provide.ProvideID=MerchInfo.ProvideID and Factory.FactoryID=MerchInfo.FactoryID and Stock.StockState=1

GO

相关主题
文本预览
相关文档 最新文档