2012年11月26日 星期一 天气晴
表已经设计完了,现在可以在SQL Server中实现它们了。(因水平有限,没有实现流水号函数,并且将罚款和赔偿改为管理员手工填入金额,取消了这两张表:
罚款表Fine_Table(罚款编号Fid,罚款内容Fcontent,罚款金额Famount)
赔偿表Pay_Table(赔偿编号Pid,赔偿内容Pcontent,赔偿金额Pamount)
)
首先,安装好SQL Server 2008和MSSQL Management Studio。(一般安装VS2010自带SQL Server 2008 Express,Management Studio需要上网下载;如果安装的是其他非免费版的SQL Server,那么会自带Management Studio)
其次,配置好数据库。Express版只能有一个Express实例,其他版本可以根据提示自己配置实例。(可以在SQL Server配置管理器中查看并启动或停止实例等)
双击进入MSSQL Management Studio,将会有一个“连接到服务器”的对话框,如图:
注意:Express版本服务器名称使用Local可能连接不上,需要手写填入:你的计算机名 + \SQLEXPRESS才能连接上。
连入数据库实例后,选择【数据库】右击菜单中选择新建数据库。新建一个Books Management System Datebase数据库,默认设置就行,可以自定义选择保存路径。注意:数据库文件.mdf和日志文件.ldf最好在同一文件夹下。
数据库建好后,选择新建查询,然后写入SQL语句,执行后建立各个表。
create table Book_Basic(
ISBN nvarchar(20) primary key,
Bcn nvarchar(5),
Bname nvarchar(50),
Bauthor nvarchar(50),
Bpress nvarchar(50),
Bprice numeric(10,2),
Bnumber numeric(10,0),
Btotal numeric(10,0),
Bbsn int
)
create table Book_Classification(Bcn nvarchar(5) primary key,Bclass nvarchar(20))
create table Book_BorrowScope(Bbsn int primary key,Bscope nvarchar(50))
create table Book_Table(
id int identity primary key,
Bid as 'BN'+right('000000'+cast(id as nvarchar),6),
ISBN nvarchar(20),
Bposition nvarchar(50),
Bsno int,
Bsituation nvarchar(50)
)
create table Book_State(Bsno int primary key,Bstate nvarchar(50))
create table Book_IOManagement(
id int identity primary key,
Ssn as 'SN'+convert(nvarchar(6),getdate(),112)+right('000000'+cast(id as nvarchar),6),
ISBN nvarchar(20),
Sinnumber int,
Sintime as convert(nvarchar(6),getdate(),112),
Soutnumber int,
Souttime as convert(nvarchar(6),getdate(),112),
Nadmin nvarchar(5)
)
create table Member_Basic(
Mid nvarchar(18) primary key,
Mname nvarchar(20),
Msex nvarchar(2),
Mgno int,
Mtele nvarchar(20),
Munit nvarchar(50),
Deposit numeric(10,2),
Mtime as convert(nvarchar(6),getdate(),112)
)
create table Member_Grade(
Mgno int primary key,
Mgrade nvarchar(20),
Mbnumber int
)
create table Borrow_Table(
id int identity primary key,
Bsn as 'BS'+convert(nvarchar(6),getdate(),112)+right('000000'+cast(id as nvarchar),6),
Mid nvarchar(18),
Bid nvarchar(8),
Btime as convert(nvarchar(6),getdate(),112),
Brenew nvarchar(2),
Rtime as convert(nvarchar(6),getdate(),112),
Pfine nvarchar(2),
Nadmin nvarchar(5)
)
create table Fine_RecordTable(
id int identity primary key,
Fsn as 'FS'+convert(nvarchar(6),getdate(),112)+right('000000'+cast(id as nvarchar),6),
Mid nvarchar(18),
Fine numeric(10,2),
Pay numeric(10,2),
Ptime as convert(nvarchar(6),getdate(),112),
Nadmin nvarchar(5)
)
create table Admin_Table(Nadmin nvarchar(5) primary key,Name nvarchar(20))