Если пользователь или страницане удалено ни одна дочерняя строка не удалена
/ ******** Создать***** *** / CREATE TABLE user
(user_id
int без знака NOT NULL AUTO_INCREMENT, username
varchar (16) NOT NULL, userpassword
BLOB,
ПЕРВИЧНЫЙ КЛЮЧ (user_id
)) ENGINE = InnoDB CHARSET ПО УМОЛЧАНИЮ = latin1;
CREATE TABLE page
(page_id
mediumint без знака, НЕ NULL AUTO_INCREMENT,title
varchar (55) NOT NULL,
ПЕРВИЧНЫЙ КЛЮЧ (page_id
)) ENGINE = InnoDB CHARSET DEFAULT = latin1;
CREATE TABLE microblog
(blog_id
int без знака, НЕ NULL AUTO_INCREMENT,blog_content
текст NOT NULL,
date_created
datetime NOT NULL, author_id
int без знака NOT NULL, page_id
mediumint без знака NOT NULL, первичный ключ (blog_id
), ограничение blogfk1
внешний ключ (* 1064)*) ССЫЛКИ user
(user_id
), / НЕТON DELETE CASCADE / CONSTRAINT blogfk2
ИНОСТРАННЫЙ КЛЮЧ (page_id
) ССЫЛКИ page
(page_id
)) ENGINE = InnoDB DARAULT CHARSET = latin1;
CREATE TABLE page_review
(review_id
int unsigned NOT NULL AUTO_INCREMENT, review_content
varchar (555) NOT NULL, date_created
datetime NOT NULL, author_id
int unsigned NOT NULL, page_id
mediumint без знака NOT NULL,
ПЕРВИЧНЫЙ КЛЮЧ (review_id
), CONSTRAINT reviewfk1
ИНОСТРАННЫЙ КЛЮЧ (author_id
) ССЫЛКИ user
(user_id
), / НЕТ НА УДАЛЕННОМ КАСКАДЕ / CONSTRAINT reviewfk2
ИНОСТРАННЫЙ КЛЮЧ (page_id
) ССЫЛКИ page
(page_id
)) ENGINE = InnoDB CHARSET ПО УМОЛЧАНИЮ = latin1;/ ************** ****** /
/ ** *** Вставки *** ** /
INSERT INTO user
(username
,userpassword
) VALUES ('username11', AES_ENCRYPT ('password1', 'encription_key')), ('username22', AES_ENCRYPT ('password2', 'encription_key')));
INSERT INTO page
(title
) VALUES ('title1'), ('title2');
INSERT INTO microblog
(blog_content
, date_created
, author_id
, page_id
) VALUES ('blogcontent1',' 2011-2-2 12:00 ',' 1 ',' 1 '), (' blogcontent2 ',' 2011-2-2 12:00 ',' 2 ',' 2 ');
INSERT INTO page_review
(review_content
, date_created
, author_id
, page_id
) ЗНАЧЕНИЯ ('reviewcontent1', '2011-2-2 12:00', '1', '1'), ('reviewcontent2', '2011-2-2 12:00', '2', '2');/ ***** ******* /
/ ******* Запросы *** / / Справка по идентификации пользователя / SELECT username
ОТ user
ГДЕ username
= 'username22' и userpassword
= AES_ENCRYPT ('password2', 'encription_key')
(SELECT
microblog
. blog_content
как blog or content
, microblog
. date_created
, microblog
. author_id
,microblog
. page_id
из microblog
, где microblog
. author_id
= '1' и microblog
. page_id
= '1').(
SELECT
page_review
. review_content
,
page_review
. date_created
,
page_review
. author_id
,
page_review
. page_id
с page_review
где page_review
. author_id
= '1' и page_review
. page_id
= '1'
)