--创建数据库use master --切换到master数据库
go-- 终止所有与SaleManagerDB数据库的连接alterdatabase SaleManagerDB set single_user withrollback immediate
goifexists(select*from sysdatabases where name='SaleManagerDB')dropdatabase SaleManagerDB
gocreatedatabase SaleManagerDB
onprimary(name='SaleManagerDB_data',filename='D:\DB\SaleManagerDB_data.mdf',size=10MB,filegrowth=1MB
)
log on(name='SaleManagerDB_log',filename='D:\DB\SaleManagerDB_log.ldf',size=2MB,filegrowth=1MB
)
go
2.在数据库中创建表
use SaleManagerDB
go
--商品分类表ifexists(select*from sysobjects where name='ProductCategory')droptable ProductCategory
go
createtable ProductCategory
(CategoryId intidentity(1,1)primarykey,--商品分类编号CategoryName varchar(20)notnull--商品分类名称)
go
--商品计量单位表ifexists(select*from sysobjects where name='ProductUnit')droptable ProductUnit
go
createtable ProductUnit
(Id intidentity(1,1)primarykey,Unit varchar(20)notnull--商品计量单位)
go
--商品信息表ifexists(select*from sysobjects where name='Products')droptable Products
go
createtable Products
(ProductId varchar(50)primarykey,--商品编号(商品条码)ProductName varchar(50)notnull, UnitPrice numeric(5,2)notnull,Unit varchar(50)notnull,--计量单位(为了提高效率,该字段并没有使用外键)Discount int,--折扣CategoryId intreferences ProductCategory (CategoryId)notnull--(商品分类)外键)
go
--商品库存状态ifexists(select*from sysobjects where name='InventoryStatus')droptable InventoryStatus
go
createtable InventoryStatus
( StatusId intprimarykey,--库存状态StatusDesc varchar(50)notnull--(1:正常,-1:低于库存,2:高于库存;-2:已清仓))
go
--商品库存信息ifexists(select*from sysobjects where name='ProductInventory')droptable ProductInventory
go
createtable ProductInventory
(ProductId varchar(50)primarykey,--商品编号TotalCount intnotnull,--总数量MinCount intnotnull,--最小库存MaxCount intnotnull,--最大库存StatusId intreferences InventoryStatus (StatusId)--库存状态(1:正常,-1:低于库存,2:高于库存;-2:已清仓))
go
--销售员表ifexists(select*from sysobjects where name='SalesPerson')droptable SalesPerson
go
createtable SalesPerson
(SalesPersonId intidentity(10000,1)primarykey,-- 自动标识SPName varchar(50)notnull,LoginPwd varchar(50)notnull--最少6位 )
go
--销售流水账ifexists(select*from sysobjects where name='SalesList')droptable SalesList
go
createtable SalesList
( SerialNum varchar(50)primarykeynotnull,--流水号(系统自动生成)TotalMoney numeric(10,2)notnull,--购物总价钱RealReceive numeric(10,2)notnull,--实际收款ReturnMoney numeric(10,2)notnull,--找零SalesPersonId intreferences SalesPerson (SalesPersonId),--销售员(外键)SaleDate smalldatetime default(getdate())notnull--默认数据库服务器时间)
go
--销售流水账明细ifexists(select*from sysobjects where name='SalesListDetail')droptable SalesListDetail
go
createtable SalesListDetail
(Id intidentity(1000000,1)primarykeynotnull,--自动标识列SerialNum varchar(50)references SalesList (SerialNum),--流水号(外键)ProductId varchar(50)notnull,--商品编号(不需要外键)ProductName varchar(50)notnull,UnitPrice numeric(10,2)notnull,Discount int,--折扣Quantity intnotnull,--销售数量 SubTotalMoney numeric(10,2)--小计金额)
go
--商品入库表ifexists(select*from sysobjects where name='ProductStorage')droptable ProductStorage
go
createtable ProductStorage
(StorageId intidentity(100000,1)primarykey,--标识列ProductId varchar(50)references Products (ProductId),--外键AddedCount intnotnull,--入库数量CurrentTime smalldatetime default(getdate())notnull--默认数据库服务器时间)
go
--登录日志ifexists(select*from sysobjects where name='LoginLogs')droptable LoginLogs
go
createtable LoginLogs
(LogId intidentity(1,1)primarykey,LoginId intnotnull,SPName varchar(50),--登录人员姓名ServerName varchar(100),--登录的服务器名称LoginTime datetimedefault(getdate())notnull,--默认数据库服务器时间ExitTime datetime--退出时间)
go
--超市会员表ifexists(select*from sysobjects where name='SMMembers')droptable SMMembers
go
createtable SMMembers
(MemberId intidentity(100200300,1)primarykey,--会员卡号MemberName varchar(50)notnull,--会员姓名 Points intdefault(0)notnull,--会员积分(消费10元,获得1个积分)PhoneNumber varchar(200)notnull,--联系电话MemberAddress textnotnull,--联系地址OpenTime datetimedefault(getdate()),--开户时间MemberStatus intdefault(1)notnull--会员卡状态(1:正常使用;0:冻结;-1:注销))
go
--管理员表ifexists(select*from sysobjects where name='SysAdmins')droptable SysAdmins
go
createtable SysAdmins
(LoginId intidentity(2000,1)primarykey,--登录账号LoginPwd varchar(20),--登录密码AdminName varchar(20),--管理员姓名AdminStatus bit,--当前状态(1:启用;0:禁用)RoleId int--角色编号(1:超级管理员;2:一般管理员))
go