-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdatabase-schema.sql
More file actions
63 lines (46 loc) · 1.47 KB
/
Copy pathdatabase-schema.sql
File metadata and controls
63 lines (46 loc) · 1.47 KB
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
-- Create a database named Bookstore
CREATE DATABASE Bookstore;
-- Create a table of the Publishers
CREATE TABLE PUBLISHERS_18(
publisher VARCHAR(255) PRIMARY KEY,
address VARCHAR(255) DEFAULT 'UNKNOWN',
phone VARCHAR(255) DEFAULT 'UNKNOWN',
country VARCHAR(255) DEFAULT 'UNKNOWN'
);
-- Create a table of the Books
CREATE TABLE BOOKS_18 (
isbn VARCHAR(10) PRIMARY KEY,
title VARCHAR(200) NOT NULL,
publisher VARCHAR(255) NOT NULL,
publication_year INT NOT NULL,
price NUMERIC(10,2) DEFAULT 0.00,
FOREIGN KEY (publisher) REFERENCES PUBLISHERS_18(publisher)
ON UPDATE CASCADE
ON DELETE CASCADE
);
-- Create a table of the authors
CREATE TABLE AUTHORS_18 (
id VARCHAR(20) PRIMARY KEY,
name VARCHAR(255) NOT NULL,
role VARCHAR(255),
gender VARCHAR(255) DEFAULT 'UNKNOWN',
nationality VARCHAR(255) DEFAULT 'UKNOWN'
);
-- Create joint table for books and authors
CREATE TABLE BOOKS_AUTHORS_18 (
isbn VARCHAR(10) REFERENCES BOOKS_18(isbn),
id VARCHAR(20) REFERENCES AUTHORS_18(id),
PRIMARY KEY (isbn, id)
);
-- Create a table of the reviews
CREATE TABLE REVIEWS_18(
review_id VARCHAR(255) PRIMARY KEY,
isbn VARCHAR(10),
nickname VARCHAR(255) DEFAULT 'USER',
ratings INT ,
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
review TEXT DEFAULT 'not available',
FOREIGN KEY (isbn) REFERENCES BOOKS_18(isbn)
ON UPDATE CASCADE
ON DELETE CASCADE
);