-- 1. 创建表bk_sequence_num,用来保存其他表的最大主键值 create table bk_sequence_num ( index_num int not null default 0, --主键,必填,默认值为0 max_user_id int not null default 0, --最大用户序号,必填,默认值为0 max_book_id int not null default 0, --最大图书序号,必填,默认值为0 max_account_id int not null default 0, --最大用户账户序号,必填, 默认值为0 max_order_id int not null default 0, --最大购书序号,必填,默认值为0 --定义index_num为主键 constraint pk_sequence_num primary key (index_num) ); -- 2. 初始化表bk_sequence_num insert into bk_sequence_num values(0,0,0,0,0); --将所有的初始序号都定为0 -- 3. 创建表book,用来保存图书的信息 create table book ( book_id int not null default 0, -- 图书号,必填,默认值为0 book_name varchar(50) not null, -- 图书名,必填 book_content varchar(750) not null, --图书内容,必填 author varchar(20), --笔者 press varchar(50), --出版社 publishing_date date, --出版日期 ISBN varchar(20), --书号 unit_price decimal(10,2) not null, --单价 discount decimal(10,2) not null, -- 折扣 constraint pk_book primary key (book_id) -- 定义book_id为主键 ); -- 4. 创建表order,用来保存用户每次购买的总的信息,如总价等 create table order ( order_id int not null default 0, --购书号,必填,默认值为0 userid int not null, --用户号,必填 total_price decimal(10,2), --总价 tax decimal(10,2), --税 order_time timestamp, --购买时间 constraint pk_order primary key (order_id), --定义order_id为主键 -- 定义userid为外键 constraint fk_order foreign key (userid) references user (userid) ) -- 5. 创建表order,用来保存用户每次购书的购书明细,每一种书的购买情况 create table order_item ( order_item_num int not null, -- 购书明细号,必填 order_id int not null, -- 购书号,必填 book_id int not null, -- 图书号,必填 quantity int not null, -- 对应于一种书的数量,必填 discount decimal(10,2), --对应于一种书的折扣 --定义order_id和order_item_num为主键,此表有多个主键 constraint pk_order_item primary key (order_id,order_item_num), constraint fk_order1 foreign key (order_id) references order(order_id), --定义外键 --定义外键 constraint fk_order2 foreign key (book_id) references book(book_id)
) -- 6. 创建表user,用来保存用户的相关信息 create table user ( userid int not null, --用户号,必填 login_name varchar(20) not null, --用户登录名,必填 name varchar(50) not null, --用户姓名,必填 password varchar(20), --用户登录密码 phone varchar(20), --用户的电话号码 email varchar(20), --用户email createTime TIMESTAMP default current timestamp,-- 用户的创建时间 constraint pk_user primary key (userid), -- 定义userid为主键
); -- 7. 创建表account,用来保存用户账户的相关信息 create table account ( accountid int not null, -- 账户号 userid int not null, -- 用户号 registrationFee decimal(10,2) not null,-- 注册费、资金结余 --定义accountid和userid为主键,此表有多个主键 constraint pk_account primary key (accountid,userid), --定义外键 constraint fk_account foreign key (userid) references user (userid) ); |