一、需求分析
1、业务需求及处理流程
业务需求分析是根据现实世界对象需求,描述应用的具体业务处理流程,并分析哪些业务室计算机可以完成的,而哪些业务是不能由计算机完成。
网上书店主要业务包括:图书信息发布与查询,订购图书,处理订单并通知配送公司送书等。本节给出了网上书店的核心业务“订单生成”及“订单受理”处理流程,如图所示:
2、功能需求及数据需求分析
功能需求分析是描述系统应提供的功能和服务。根据上述需求描述和业务流程,通过网上书店人员的沟通与交流,网上书店主要功能和数据需求分析如下。
1.注册管理
(1)、会员注册。会员注册时要求填写基本信息,包括姓名,登录密码,性别,出生日期,地址,邮政编码,电话,电子邮件,单位等信息。系统检查所有信息填写正确后提示会员注册成功,并返回会员编号。
(2)、职员注册。书店工作人员以职员身份注册并填写基本信息,包括姓名,登录密码,性别,出生日期,部门,薪水,住址,电话,电子邮箱等信息。系统检查所有信息填写正确后提示职员注册成功,并返回职员编号。
2. 图书管理
(1)、图书信息维护。图书需维护ISBN,书名,作者,版次,类别,出版社,出版年份,库存数量,定价,图书折扣,内同简介,目录等信息。
(2)、图书采购。当库存数量不足或出版社有新书出版时,书店职员负责图书采购。采购单包括采购单号(按时间顺序生成),出版社,采购日期,采购人,采购明细(包括ISBN,书名,采购数量,单价)等。
(3)图书入库。当订购的图书到货后办理图书入库,并增加新图书信息,更新图书库存数量。入库单包括入库单号,出版社,入库日期,入库人,入库明细(包括ISBN,书名,入库数量)等。
(4)、图书发布。书店职员负责及时在网上发布新书信息,图书推荐信息,促销信息等,并及时更新,删除就信息。
3. 在线订书
会员登录网站后,将需订购的图书放入购物车中并填写购买数量。购物车内的图书可以随时增加、删除和修改数量,并能及时统计购物车内的图书总价格。
选书完成后,会员还需要选择支付方式(在线支付或上门付款)并填写单位等。确认所填信息无误后,则提交生成订单。每张订单要求记录订单号(按时间顺序生成)、订购日期、应收总金额、会员折扣、实收总金额、付款方式、订单状态、订单明细(包括ISBN、书名、订购数量、定价、应收金额、图书折扣、实收金额、配送状态等)和信息(如单位等)。如果选择了在线支付方式,则还需进行网上结算。若余额不足,则取消订单(本设计不考虑)。
4. 配送状态
假如一张订单所订购的图书可拆分成不同的配送单发货,但一个配送单不能包含不同订单的图书。因此,会员在生成订单之后还需要进一步进行配送设置,包括填写配送信息,定义配送明细,同时还需要选择:如果一个配送单中的所有图书不是同时有货,是否需要自动拆送,每张配送单要记录配送单号、配送日期、配送信息(收货人、送货地址、邮政编码、联系电话等)配送明细(包括ISBN、书名、配送数量等)、是否拆送、编号、配送状态等。配送信息默认从会员注册信息中获取,也可以重新填写。配送状态记录了改配送单的当前配送状态,也包括“未发货”、“已发货”、“已送到”等状态。
5. 订单管理
(1)订单查询。订单提交后,会员可以随时查询订单的最新状态及全部历史订单。
(2)订单取消及更新。订单为审核前,允许会员取消订单及更新订单信息。
(3)订单受理。订单生成后,职员对订单进行审核。如发现订单及配送单信息填写不正确,则退回客户重新填写。如果通过审核,则检查所订购图书是否有库存。如一个配送单中所购图书均库存,则生成该配送单的,更新库存数量,安排配送。 如一个配送单中的部分图书库存不足(通知尽快进货),且会员选择是否拆送为“Y”,则系统自动对该配送单进行拆分配送(先配送有库存的图书),生成拆分的配送单及,更新库存数量,安排配送。
6. 出版社管理
网上书店直接从出版社采购图书。为方便管理,要求保存和维护出版社信息,包括出版社编号、出版社名称、出版社地址、邮政编码、联系人、联系电话、传真、电子邮箱等信息。
7. 配送公司管理
网上书店通过配送公司将图书送到会员手中。要求保存和维护配送公司信息:公司编号、公司名称、公司地址、邮政编码、联系人、电话、传真、电子邮箱等信息。
8. 留言管理
(1)发布留言。会员可以在网站发表留言或评论。留言需要记录留言人、留言日期、留言内容等信息。
(2)回复留言。书店职员可回复留言,并记录回复人、回复日期、回复内容等信息。
9.用户管理
(1)会员升级。系统可对会员进行分级,即当会员订书总金额到达一定数额后成为不同等级的用户,享受相应的优惠折扣。
(2)会员信息维护。系统管理员及会员可修改、删除和更新会员信息。
(3)职员信息维护。系统管理与及职员可修改、删除和更新职员信息。
3、业务规则分析
业务规则分析主要是分析数据之间的约束及数据库约束。基于上述功能需求,通过进一步了解,网上书店业务规则如下:
(1)所有用户均可搜索图书信息,但只有注册会员才能在网上提交订单;只有注册职员才能维护图书信息及受理订单。
(2)每位会员由会员编号唯一标识,会员编号由系统按时间顺序生成。
(3)每位职员由职员编号唯一标识,职员编号由系统按时间顺序生成。
(4)当普通会员购书总额达到10000元,即升级为三级VIP会员,享受9.5折优惠;购书总额达到20000元后,升级为二级VIP会员,享受9折优惠;购书总额达到30000元,升级为一级VIP会员,享受8.5折优惠。
(5)ISBN唯一标识一种图书。系统记录每种图书的当前库存数量,当某图书的库存数量低于某一阈值时,则通知该图书补货。
(6)选购的图书必须放入购物车后才能生成订单。
(7)订单受理前允许会员删除所选图书,修改购书数量、配送信息和单位,甚至取消订单。但是订单审核通过后,则不允许再做任何修改。
(8)每个订单用订单编号唯一标识。订单编号由系统按时间顺序生成,后提交的订单具有更大的订单号。
(9)同一订单可订购多种图书,且订购数量可以不同。因此,一张订单的订单明细包括:ISBN、图书名称、订购数量、定价、应收金额、图书折扣、实收金额、配送状态。每种图书的实收金额=订购数量*定价*图书折扣*会员折扣。
(10)每个订单可分多个配送单进行配送,配送单的配送明细信息由会员设置。配送单编号唯一标识配送单。每个订单的配送单编号由订单编号加上系统按时间顺序生成的配送单流水号组成。
(11)假设一张订单的每一个配送单对应开一张,但一张订单的所有的单位都相同。用编号唯一标识。
(12)配送单中的图书采取先到先发货原则进行配送。若一个配送单中的图书未同时有货,且会员选择可以拆送,则系统会自动拆分成不同配送单发货;但是,配送单中的某种图书只有库存足够时才能安排配送。
(13)一个配送单只能由一个配送公司进行配送(不同配送单可以由不同配送公司配送);一个配送公司可以承接多次配送业务。
(14)配送单中的配送状态记录了该配送单的当前配送状态,包括“未发货”、“已发货”、“已送达”等状态。
(15)订单中的订单状态记录了该订单的当前处理状态,包括“未审核”、“退回”、“已审核”、“已部分配送”、“已全部配送”、“已处理结束”等状态。
(16)订单明细的配送状态记录了该图书的当前配送情况,包括“未配送”、“已部分配送”、“已全部配送”等状态。
(17)当订单中的某种图书全部送到后,则更新该图书的配送状态为“已全部送到”。当订单内全部图书的配送状态为“已全部送到”时,则更新该订单的订单状态为“已处理结束”。
(18)一种图书由一个出版社出版,而一个出版社可出版多种图书。
(19)一个会员可发表多条留言,一个职员可回复多条留言,但假设一条会员发布的留言至多只回复一次。
完成需求分析后,接下来的任务就是根据上述分析结果设计数据库的概念模型,即E-R模型,包括确定实体集、联系集及属性。
二、E-R模型设计
1、订单生成与订单审核
2、配送设置与图书配送
3、图书采购与图书入库
4、总体E-R图设计
三、数据字典
1、职员实体集数据字典
| 属性名 | 含义 | 类别 | 域及约束 |
| employeeNo | 职员编号 | 主码 | char(10),不允许取空值 |
| empPassword | 登录密码 | char(10),不能少于6位 | |
| empName | 姓名 | varchar(20),不允许取空值 | |
| sex | 性别 | char(2),取值范围:{‘男’, ‘女’} | |
| birthday | 出生日期 | datetime | |
| department | 部门 | varchar(30) | |
| title | 职务 | varchar(20) | |
| salary | 薪水 | numeric | |
| address | 住址 | varchar(40) | |
| telephone | 电话 | char(13),由数字字符加连字符‘-’组成 | |
| 电子邮箱 | varchar(20) |
| 属性名 | 含义 | 类别 | 域及约束 |
| memberNo | 会员编号 | 主码 | char(10),不允许取空值 |
| memPassword | 登录密码 | char(10),不能少于6位 | |
| memName | 姓名 | varchar(20),不允许取空值 | |
| sex | 性别 | char(2),取值范围:{‘男’, ‘女’} | |
| birthday | 出生日期 | datetime | |
| telephone | 电话 | char(13),由数字字符加连字符‘-’组成 | |
| 电子邮箱 | varchar(20) | ||
| address | 住址 | varchar(40),不允许为空 | |
| zipCode | 邮政编码 | char(6),不允许为空 | |
| unit | 单位 | varchar(20),不允许取空值 | |
| totalAmount | 购书总额 | numeric,从订单实体集中统计得到 | |
| memLevel | 会员等级 | char(1),取值范围:{1,2,3},分别代表一级、二级、三级VIP会员 | |
| levelSum | 等级购书额定 | numeric | |
| memDiscount | 会员折扣 | float |
| 属性名 | 含义 | 类别 | 域及约束 |
| orderNo | 订单号 | 主码 | char(15),不允许取空值 |
| orderDate | 订购日期 | datetime,不允许取空值 | |
| amountReceivable | 应收总金额 | 派生 | numeric,从图书订购联系集中统计得到 |
| paidAmount | 实收总金额 | 派生 | numeric,从图书订购联系集中统计得到 |
| memDiscount | 会员折扣 | 派生 | float,取会员实体集中该会员对应属性的当前值 |
| payWay | 付款方式 | char(1),取值范围:{‘L’,‘S’},分别表示在线支付,上门付款 | |
| paidFlag | 是否付款 | char(1),取值范围:{‘Y’,‘N’} | |
| orderState | 订单状态 | char(1),取值范围:{‘A’,‘B’,‘C’,‘D’,‘E’,‘F’}分别代表“未审核”、“退回”、“已审核”、“以部分配送”、“已全部配送”、“已处理结束” | |
| invoiceUnit | 单位 | varchar(40),默认取会员实体集的unit属性当前值,并允许修改 |
| 属性名 | 含义 | 类别 | 域及约束 |
| shipNO | 配送单号 | 部分码 | char(4),不允许空值 |
| receiver | 收货人 | varchar(20),默认取会员实体集中该会员的memName属性当前值,并允许修改 | |
| shipAddress | 送货地址 | varchar(40),默认取会员实体集中该会员的address属性当前值 | |
| zipCode | 邮政编码 | char(6),默认取会员实体集中该会员的zipCode属性当前值,并允许修改 | |
| shipTel | 联系电话 | varchar(15),默认取会员实体集中该会员的telephone属性当前值,并允许修改 | |
| separateFlag | 是否拆送 | char(1),取值范围{‘Y’,‘N’} | |
| invoiceNo | 编号 | varchar(20) | |
| shipDate | 配送日期 | 联系 | datetime,它是实体集配送单与配送公司之间多对一联系集配送的联系属性 |
| shipState | 配送状态 | 联系 | char(1),取值范围{‘A’,‘B’,‘C’},分别代表“未发货”、“已发货”、“以送达”。它是实体集配送单与配送公司之间的多对一联系集配送的联系属性 |
| 属性名 | 含义 | 类别 | 域及约束 |
| purchaseNo | 采购单号 | 主码 | char(15),不允许为空值 |
| purDate | 采购日期 | datetime | |
| purAmount | 采购总金额 | numeric | |
| storedFlag | 是否入库 | char(1),取值范围{‘Y’,‘N’},不允许为空值 | |
| employeeNo | 采购员 | 外码 | char(10),不允许为空值 |
| pressNo | 出版社编号 | 外码 | char(12),不允许为空值 |
| 属性名 | 含义 | 类别 | 域及约束 |
| serialNo | 序号 | 部分码 | char(4),不允许为空值 |
| purQuantity | 采购数量 | int | |
| pupPrice | 采购单价 | numeric |
| 属性名 | 含义 | 类别 | 域及约束 |
| storeNo | 入库单号 | 部分码 | char(4),不允许为空值 |
| storeDate | 入库日期 | date |
| 属性名 | 含义 | 类别 | 域及约束 |
| ISBN | 书号 | 主码 | char(17),不允许为空值 |
| bookTitle | 书名 | varchar(30) | |
| author | 作者 | varchar(40) | |
| publishDate | 出版日期 | date | |
| version | 版次 | int | |
| category | 类别 | varchar(20),不允许为空值 | |
| stockNumber | 库存数量 | int,不允许为空值 | |
| price | 定价 | numeric,不允许为空值 | |
| bookDiscount | 图书折扣 | float,不允许取空值 | |
| introduction | 内容简介 | varchar(500) | |
| catalog | 目录 | varchar(500) |
| 属性名 | 含义 | 类别 | 域及约束 |
| pressNo | 出版社编号 | 主码 | char(12),不允许取空值 |
| pressTitle | 出版社名称 | varchar(20) | |
| address | 出版社地址 | varchar(40) | |
| zipCode | 邮政编码 | char(6),不允许为空值 | |
| contactPerson | 联系人 | varchar(12) | |
| telephone | 联系电话 | varchar(15) | |
| fax | 传真 | varchar(15) | |
| 电子邮箱 | varchar(20) |
| 属性名 | 含义 | 类别 | 域及约束 |
| companyNO | 公司编号 | 主码 | char(12),不允许取空值 |
| companyTitle | 公司名称 | varchar(20) | |
| address | 公司地址 | varchar(40) | |
| zipCode | 邮政编码 | char(6) | |
| contactPerson | 联系人 | varchar(12) | |
| telephone | 联系电话 | varchar(15) | |
| fax | 传真 | varchar(20) | |
| 电子邮箱 | varchar(20) |
| 属性名 | 含义 | 类别 | 域及约束 |
| messageNo | 留言编号 | 主码 | char(10),不允许取空值 |
| messageDate | 留言日期 | datetime | |
| messageContent | 留言内容 | varchar(100) | |
| replyDate | 回复日期 | datetime | |
| replyContent | 回复内容 | varcahar(100) |
1、注册管理
2、用户管理
3、图书管理
4、出版社管理 5、配送公司管理
6、订单管理
7、留言管理
8、配送管理
9、
五、数据库表
在数据库中建立名称为Shop的数据库
1、职员Employee表的建立
USE [Shop]
GO
/****** 对象: Table [dbo].[Employee] 脚本日期: 06/18/2013 20:52:41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Employee](
[employeeNo] [char](10) COLLATE Chinese_PRC_CI_AS NOT NULL,
[empPassword] [char](10) COLLATE Chinese_PRC_CI_AS NOT NULL,
[empName] [varchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL,
[sex] [char](2) COLLATE Chinese_PRC_CI_AS NOT NULL,
[birthday] [datetime] NOT NULL,
[department] [varchar](30) COLLATE Chinese_PRC_CI_AS NOT NULL,
[title] [varchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL,
[salary] [numeric](18, 0) NOT NULL,
[address] [varchar](40) COLLATE Chinese_PRC_CI_AS NOT NULL,
[telephone] [varchar](15) COLLATE Chinese_PRC_CI_AS NOT NULL,
[email] [varchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL,
CONSTRAINT [PK_Employee] PRIMARY KEY CLUSTERED
(
[employeeNo] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
2、会员Member表的建立
USE [Shop]
GO
/****** 对象: Table [dbo].[Member] 脚本日期: 06/18/2013 21:04:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Member](
[memberNo] [char](10) COLLATE Chinese_PRC_CI_AS NOT NULL,
[memPassword] [char](10) COLLATE Chinese_PRC_CI_AS NOT NULL,
[memName] [varchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL,
[sex] [char](2) COLLATE Chinese_PRC_CI_AS NOT NULL,
[birthday] [datetime] NOT NULL,
[telephone] [varchar](15) COLLATE Chinese_PRC_CI_AS NOT NULL,
[email] [varchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL,
[address] [varchar](40) COLLATE Chinese_PRC_CI_AS NOT NULL,
[zipCode] [char](6) COLLATE Chinese_PRC_CI_AS NOT NULL,
[unit] [varchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL,
[totalAmount] [numeric](18, 0) NOT NULL,
[memLevel] [char](1) COLLATE Chinese_PRC_CI_AS NOT NULL,
CONSTRAINT [PK_Member] PRIMARY KEY CLUSTERED
(
[memberNo] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
ALTER TABLE [dbo].[Member] WITH CHECK ADD CONSTRAINT [FK_Member_MemClass] FOREIGN KEY([memLevel])
REFERENCES [dbo].[MemClass] ([memLevel])
GO
ALTER TABLE [dbo].[Member] CHECK CONSTRAINT [FK_Member_MemClass]
3、会员等级MemClass表的建立
USE [Shop]
GO
/****** 对象: Table [dbo].[MemClass] 脚本日期: 06/18/2013 21:05:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[MemClass](
[memLevel] [char](1) COLLATE Chinese_PRC_CI_AS NOT NULL,
[levelSum] [numeric](18, 0) NOT NULL,
[memDiscount] [float] NOT NULL,
CONSTRAINT [PK_MemClass] PRIMARY KEY CLUSTERED
(
[memLevel] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
4、图书Book表的建立
GO
/****** 对象: Table [dbo].[Book] 脚本日期: 06/18/2013 21:13:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Book](
[ISBN] [char](17) COLLATE Chinese_PRC_CI_AS NOT NULL,
[bookTitle] [varchar](30) COLLATE Chinese_PRC_CI_AS NOT NULL,
[author] [varchar](40) COLLATE Chinese_PRC_CI_AS NOT NULL,
[publishDate] [datetime] NOT NULL,
[version] [int] NOT NULL,
[category] [varchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL,
[stockNumber] [int] NOT NULL,
[price] [numeric](18, 0) NOT NULL,
[bookDiscount] [float] NOT NULL,
[introduction] [varchar](500) COLLATE Chinese_PRC_CI_AS NOT NULL,
[catalog] [varchar](500) COLLATE Chinese_PRC_CI_AS NOT NULL,
[pressNo] [char](12) COLLATE Chinese_PRC_CI_AS NOT NULL,
CONSTRAINT [PK_Book] PRIMARY KEY CLUSTERED
(
[ISBN] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
ALTER TABLE [dbo].[Book] WITH CHECK ADD CONSTRAINT [FK_Book_Press] FOREIGN KEY([pressNo])
REFERENCES [dbo].[Press] ([pressNo])
GO
ALTER TABLE [dbo].[Book] CHECK CONSTRAINT [FK_Book_Press]
5、出版社Press表的建立
USE [Shop]
GO
/****** 对象: Table [dbo].[Press] 脚本日期: 06/18/2013 21:14:41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Press](
[pressNo] [char](12) COLLATE Chinese_PRC_CI_AS NOT NULL,
[pressTitle] [varchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL,
[address] [varchar](40) COLLATE Chinese_PRC_CI_AS NOT NULL,
[zipCode] [char](6) COLLATE Chinese_PRC_CI_AS NOT NULL,
[contactPerson] [varchar](12) COLLATE Chinese_PRC_CI_AS NOT NULL,
[telephone] [varchar](15) COLLATE Chinese_PRC_CI_AS NOT NULL,
[fax] [varchar](15) COLLATE Chinese_PRC_CI_AS NOT NULL,
[email] [varchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL,
CONSTRAINT [PK_Press] PRIMARY KEY CLUSTERED
(
[pressNo] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
6、配送公司Company表的建立
USE [Shop]
GO
/****** 对象: Table [dbo].[Company] 脚本日期: 06/18/2013 21:22:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Company](
[companyNo] [char](12) COLLATE Chinese_PRC_CI_AS NOT NULL,
[companyTitle] [varchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL,
[address] [varchar](40) COLLATE Chinese_PRC_CI_AS NOT NULL,
[zipCode] [char](6) COLLATE Chinese_PRC_CI_AS NOT NULL,
[contactPerson] [varchar](12) COLLATE Chinese_PRC_CI_AS NOT NULL,
[telephone] [varchar](15) COLLATE Chinese_PRC_CI_AS NOT NULL,
[fax] [varchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL,
[email] [varchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL,
CONSTRAINT [PK_Company] PRIMARY KEY CLUSTERED
(
[companyNo] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
7、留言Message表的建立
USE [Shop]
GO
/****** 对象: Table [dbo].[Message] 脚本日期: 06/18/2013 21:25:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Message](
[messageNo] [char](10) COLLATE Chinese_PRC_CI_AS NOT NULL,
[memberNo] [char](10) COLLATE Chinese_PRC_CI_AS NOT NULL,
[releaseDate] [datetime] NOT NULL,
[messageContent] [varchar](100) COLLATE Chinese_PRC_CI_AS NOT NULL,
CONSTRAINT [PK_Message] PRIMARY KEY CLUSTERED
(
[messageNo] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
ALTER TABLE [dbo].[Message] WITH CHECK ADD CONSTRAINT [FK_Message_Member] FOREIGN KEY([memberNo])
REFERENCES [dbo].[Member] ([memberNo])
GO
ALTER TABLE [dbo].[Message] CHECK CONSTRAINT [FK_Message_Member]下载本文