1.
1. :
1. ( ):
* :
* : ,
2. ( ):
* :
* : ,
3. :
* :
* : ,
2. :
1. ( ):
* :
* : , 。
2. :
* :
* : 。 , ,
3. ( ):
* :
* : , 。
3.
-- tab_category
-- cid ,
-- cname , , 100
CREATE TABLE tab_category (
cid INT PRIMARY KEY AUTO_INCREMENT,
cname VARCHAR(100) NOT NULL UNIQUE
);
-- tab_route
/*
rid ,
rname , , 100
price
rdate ,
cid ,
*/
CREATE TABLE tab_route(
rid INT PRIMARY KEY AUTO_INCREMENT,
rname VARCHAR(100) NOT NULL UNIQUE,
price DOUBLE,
rdate DATE,
cid INT,
FOREIGN KEY (cid) REFERENCES tab_category(cid)
);
/* tab_user
uid ,
username 100, ,
password 30,
name 100
birthday
sex , 1
telephone , 11
email , 100
*/
CREATE TABLE tab_user (
uid INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(100) UNIQUE NOT NULL,
PASSWORD VARCHAR(30) NOT NULL,
NAME VARCHAR(100),
birthday DATE,
sex CHAR(1) DEFAULT ' ',
telephone VARCHAR(11),
email VARCHAR(100)
);
/*
tab_favorite
rid id,
date
uid id,
rid uid , ,
*/
CREATE TABLE tab_favorite (
rid INT, -- id
DATE DATETIME,
uid INT, -- id
--
PRIMARY KEY(rid,uid), --
FOREIGN KEY (rid) REFERENCES tab_route(rid),
FOREIGN KEY(uid) REFERENCES tab_user(uid)
);
2.
* : , 。 ,
, , , , , 。
: (1NF)、 (2NF)、 (3NF)、 - (BCNF)、 (4NF) (5NF, )。
* :
1. (1NF):
2. (2NF): 1NF , ( 1NF )
* :
1. :A-->B, A ( ) , B 。 B A
: --> 。 ( , ) -->
2. :A-->B, A , B A 。
:( , ) -->
3. :A-->B, A , B A 。
:( , ) -- >
4. :A-->B, B -- >C . A ( ) , B , B ( ) C , C A
: --> , -->
5. : , , , ( )
: :( , )
* :
* :
3. (3NF): 2NF , ( 2NF )