一、ER图--物理数据模型--MySQL命令行
物理数据模型如图:
MySQL命令:
/*==============================================================*/
/* Table: ReaderType */
/*==============================================================*/
create table ReaderType
(
rdType integer not null default timestamp,
rdTypeName varchar(20) null,
canLendQty integer null,
canLendDay integer null,
constraint PK_READERTYPE primary key clustered (rdType)
);
/*==============================================================*/
/* Table: Reader */
/*==============================================================*/
create table Reader
(
rdID char(9) not null,
rdType integer null,
rdName varchar(20) null,
rdDept varchar(40) null,
rdQQ varchar(13) null,
rdBorrowQty integer null default 0
constraint CKC_RDBORROWQTY_READER check (rdBorrowQty is null or (rdBorrowQty between 1 and 10)),
constraint PK_READER primary key clustered (rdID)
);
alter table Reader
add constraint FK_READER_REFERENCE_READERTY foreign key (rdType)
references ReaderType (rdType)
on update restrict
on delete restrict;
/*==============================================================*/
/* Table: Borrow */
/*==============================================================*/
create table Borrow
(
rdID char(9) null,
bkID char(9) null,
DateBorrow datetime null,
DateLendPlan datetime null,
DateLendAct datetime null
);
alter table Borrow
add constraint FK_BORROW_REFERENCE_READER foreign key (rdID)
references Reader (rdID)
on update restrict
on delete restrict;
alter table Borrow
add constraint FK_BORROW_REFERENCE_BOOK foreign key (bkID)
references Book (bkID)
on update restrict
on delete restrict;
/*==============================================================*/
/* Table: Book */
/*==============================================================*/
create table Book
(
bkID char(9) not null,
bkname varchar(50) null,
bkauthor varchar(50) null,
bkPress varchar(50) null,
bkPrice varchar(5) null,
bkStatus integer null,
constraint PK_BOOK primary key clustered (bkID)
);
testbd数据库截图:
测试插入数据语句:
1.
USE testbd;
INSERT into readertype VALUES(1,'教师',10,60);
INSERT into readertype VALUES(2,'本科生',5,30);
INSERT into readertype VALUES(3,'硕士研究生',6,40);
INSERT into readertype VALUES(4,'教师',8,50);
INSERT into reader values('rd2017001',1,'王桃群','计算机科学学院','365234',1);
INSERT into reader values('rd2017002',2,'孙小美','英语学院','232323',1);
INSERT into reader values('rd2017003',3,'连晓燕,'管理学院','341',1);
INSERT into reader values('rd2017004',4,'徐迪','物理学院','361235234',1);
INSERT into reader values('bk2017001','数据库原理','王丽艳','机械工业出版社',33.00,1);
INSERT into reader values('bk2017002','高等数学','同济大学数学系','高等教育出版社',32.00,1);
INSERT into reader values('bk2017003','当代教育心理学','陈器','北京师范大学',37.00,1);
INSERT into reader values('bk2017004','古代汉语','王立','中华书局',20.40,1);
INSERT INTO `borrow` VALUES ('rd2017001', 'bk2017001', '2020-10-16 23:54:15', '2020-11-07 23:54:21', '2020-10-31 23:54:27');
INSERT INTO `borrow` VALUES ('rd2017002', 'bk2017002', '2020-10-17 23:54:56', '2020-11-22 23:55:00', '2020-11-05 23:55:07');
二、心得体会:
1.错误一、
问题描述 :------- 在向Reader表,执行插入数据时出现的一个错误:
原因与解决 :--------check constraint ‘ ’ is violated 违反约束。 可能造成原因是,在设置Reader 表的借阅数量默认值是,设置不当,改后,可以插入数据。
2. 错误二、
问题描述 :-------在物理数据模型生成sql语句时,生成的sql语句,并不匹配MySQL 语法。导致不能在MySQL中创建表。
原因与解决 :--------这个问题请求了老师的帮助,在powerdesigner中 使用 物理数据模型,创建数据库结构时,对于表中属性的字符类型在创建中,出现错误。是我部分采取粘贴复制导致。将字符类型重新检查一遍即可。问题解决。