Microsoft-pubs(圖書館管理系統)-數據庫設計

ylbtech-DatabaseDesgin:微軟提供-pubs(圖書館管理系統)-數據庫設計
 
1.A,數據庫關係圖

 

1.B,數據庫設計腳本
-- =============================================
-- zhen:模仿pubs庫 《圖書館庫》
-- 12:51 2011/12/7
-- ylb, tech
-- 感謝貢獻者:lgz
-- =============================================
USE master
GO

-- Drop the database if it already exists
IF  EXISTS (
 SELECT name 
  FROM sysdatabases 
  WHERE name = N'fpubs'
)
DROP DATABASE fpubs
GO

CREATE DATABASE fpubs
GO
use fpubs
go
-- =============================================
-- zhen:1,圖書表
-- =============================================
create table titles
(
title_id varchar(6) primary key ,                --編號【PK】
title varchar(80) not null,                      --標題
[type] char(12) default('undecided') not null,   --類型
pub_id char(4) null,                             --出版社編號【FK】
price money null,                                --單價

advance money null,                              --預付款
royalty int null,
ytd_se int null,
notes varchar(200) null,                         --備註
pubdate datetime default(getdate()) not null     --上架日期
)
go
-- =============================================
-- zhen:2,做者表
-- =============================================
create table authors
(
au_id varchar(11) primary key check([au_id] like '[0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]'),      --編號【pk】
au_iname varchar(40) not null,                    --
au_fname varchar(20) not null,                    --
phone char(12) default'(未知的)' not null,        -- 手機號碼
address varchar(40),                              --地址

city varchar(20),                                            --城市
[state] char(5),                                             --
zip char(5) check([zip] like '[0-9][0-9][0-9][0-9][0-9]'),   --郵編
[contract] bit                                               --是否在簽約中;0;不在;1:在。  
)
-- =============================================
-- zhen:3,圖書-做者表
-- =============================================
create table titleauthor
(
au_id varchar(11) foreign key references authors(au_id),            --做者編號[FK]
title_id varchar(6) foreign key references titles(title_id),      --圖書編號[FK]
au_ord tinyint null,               --
royaltyper int null,
primary key(au_id,title_id)        --設置聯合主鍵[PK]
)
--drop table titleauthor
go

-- =============================================
-- zhen:4,storesn. 貯藏;備用品;商店(store的複數)v. 儲存;供應;容納(store的三單形式)
-- =============================================
create table stores
(
stor_id char(4) primary key not null,       --商店編號[PK]
stor_name varchar(40) null,                 --商店名稱
stor_address varchar(40) null,              --商店地址
city varchar(20) null,                      --所在城市
state char(2) null,                         --所在州

zip char(5) null                            --郵編
)
-- =============================================
-- zhen:5,discounts優惠,折價
-- =============================================
create table discounts
(
discounttype varchar(40) not null,   --折扣類型
stor_id char(4) foreign key references stores(stor_id) ,        --商店編號[FK]
lowqty smallint null,                --數量下限
highqty smallint null,               --數量上限
discount decimal(4,2) not null ,     --折扣
)
--drop table discounts
-- =============================================
-- zhen:6,jobs 工做(job的複數形式)
-- =============================================
create table jobs
(
job_id smallint primary key  not null,                                              --工做編號[FK]
job_desc varchar(50)  DEFAULT ('New Position - title not formalized yet') not null, --工做描述
min_lvl tinyint CHECK ([min_lvl] >= 10) not null,            --
max_lvl tinyint CHECK ([max_lvl] <= 250) not null            --
)

--drop table jobs

-- =============================================
-- zhen:7,publishers--出版社
-- =============================================
create table publishers 
(
pub_id char(4) primary key CHECK([pub_id] = '1756' or ([pub_id] = '1622' or ([pub_id] = '0877' or ([pub_id] = 

'0736' or [pub_id] = '1389'))) or [pub_id] like '99[0-9][0-9]'),   --出版社編號[PK]
pub_name varchar(40) null,                   --出版社名稱
city varchar(20) null,                       --所在城市
state char(2) null,                          --所在州
country varchar(30) DEFAULT ('USA') null     --所在國家
)
--drop table publishers

-- =============================================
-- zhen:8,pub_info出版社詳細
-- =============================================
create table put_info
(
pub_id char(4) primary key not null,                           --出版社編號[PK]
logo image null,                                               --標誌圖
pr_info char(4) foreign key references publishers(pub_id) null --出版信息[FK]
)
--drop table put_info

-- =============================================
-- zhen:9,employee僱員;從業員工
-- =============================================
create table employee
(
emp_id int primary key  CHECK([emp_id] like '[A-Z][A-Z][A-Z][1-9][0-9][0-9][0-9][0-9][FM]' or [emp_id] like 

'[A-Z]-[A-Z][1-9][0-9][0-9][0-9][0-9][FM]') not null,  --職工編號
fname varchar(20) not null,       --職工名
minit char(1) null,               --
lname varchar(30) not null,       --職工姓
job_id smallint DEFAULT(1) foreign key references jobs(job_id) not null,               --工做編號[FK]

job_lvl tinyint DEFAULT (10) null,             --
pub_id char(4) DEFAULT ('9952') foreign key references publishers(pub_id) not null,    --出版社編號[FK]
hire_date datetime DEFAULT (getdate()) not null                                        --工做日期
)
--drop table employee

-- =============================================
-- zhen:10,roysched
-- =============================================
--drop table roysched
create table roysched
(
title_id varchar(6) foreign key references titles(title_id),  --書編號[FK]
lorange int null,              --
hirange int null,              --
royalty int null               --版權
)
-- =============================================
-- zhen:11,salesadj. 銷售的,售貨的;有關銷售的n. 銷售額;銷售(sale的複數)
-- =============================================
create table sales
(
stor_id char(4) foreign key references stores(stor_id),               --商店編號[FK]
ord_num varchar(20),                                                 --訂單編碼
ord_date datetime not null,                                           --訂購日期
qty smallint not null,                                                --數量
payyterms varchar(12) not null,                                       --付款方式
title_id varchar(6) foreign key references titles(title_id) not null,  --書編號[FK]
primary key (stor_id,ord_num,title_id)                                --設置聯合主鍵[PK]
)
--drop table sales
-- =============================================
-- zhen:12,usersn. 使用者;受限用戶(user的複數)
-- =============================================
create table users
(
uid char(10) primary key not null,         --用戶名【PK】
uname char(10) not null,                   --
ups char(10) not null,                     --
gender char(2) DEFAULT ('') null,        --性別
age int CHECK  (([age] >= 15 and [age] <= 80)) null,   --年齡

upower char(10) DEFAULT ('Guest') null,                --
sex char(2) null                                       --性別
)
--drop table users
--print '建立圖書館庫成功!'
View Code
1.C,功能實現代碼

 

warn 做者:ylbtech
出處:http://ylbtech.cnblogs.com/
本文版權歸做者和博客園共有,歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,不然保留追究法律責任的權利。
相關文章
相關標籤/搜索