-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnews_portal_entities.txt
49 lines (39 loc) · 1.81 KB
/
news_portal_entities.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
CREATE TABLE AUTHOR (
author_id INT AUTO_INCREMENT NOT NULL,
author_name CHAR(40) NOT NULL, #cвязь «один к одному» с встроенной моделью пользователей User;
author_rating FLOAT NOT NULL, #рейтинг пользователя.
PRIMARY KEY (author_id)
);
CREATE TABLE CATEGORY (
cat_id INT AUTO_INCREMENT NOT NULL,
cat_name CHAR(40) NOT NULL, #Имеет единственное поле: название категории.
PRIMARY KEY (cat_id)
);
CREATE TABLE POST (
post_id INT AUTO_INCREMENT NOT NULL,
post_type INT NOT NULL,
time_pub DATETIME NOT NULL,
post_title TEXT NOT NULL,
post_body TEXT NOT NULL,
post_rating FLOAT NOT NULL,
author INT NOT NULL,
category INT NOT NULL,
PRIMARY KEY (post_id),
FOREIGN KEY (author) REFERENCES AUTHOR (author_id), #связь «один ко многим» с моделью Author;
);
CREATE TABLE POST_CATEGORY (
post INT NOT NULL,
category INT NOT NULL,
FOREIGN KEY (post) REFERENCES POST (post_id), #связь «один ко многим» с моделью Post;
FOREIGN KEY (category) REFERENCES CATEGORY (cat_id) #связь «один ко многим» с моделью Category;
);
CREATE TABLE COMMENT (
comment_id INT AUTO_INCREMENT NOT NULL,
comment_body TEXT NOT NULL, #текст комментария;
comment_time DATETIME NOT NULL, #дата и время создания комментария;
comment_rating FLOAT NOT NULL, #рейтинг комментария.
post INT NOT NULL,
PRIMARY KEY (comment_id),
FOREIGN KEY (post) REFERENCES POST (post_id), #связь «один ко многим» с моделью Post;
#связь «один ко многим» со встроенной моделью User
);