-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathbiblio.sql
81 lines (73 loc) · 2.25 KB
/
biblio.sql
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
CREATE DATABASE biblio;
CREATE TABLE Users (
UserID INT NOT NULL AUTO_INCREMENT,
Username VARCHAR (30) NOT NULL,
LastName VARCHAR(30) NOT NULL,
FirstName VARCHAR(30) NOT NULL,
Email VARCHAR(255) NOT NULL,
Pword VARCHAR(30) NOT NULL,
CONSTRAINT PK_User PRIMARY KEY(UserID)
);
CREATE TABLE Books (
ISBN VARCHAR(255) NOT NULL,
Title VARCHAR(50) NOT NULL,
Author VARCHAR(50) NOT NULL,
Genre VARCHAR (50),
BookLanguage VARCHAR(32),
PublishedDate DATE NOT NULL,
Publisher VARCHAR(50) NOT NULL,
BookDescription LONGTEXT,
Pages INT,
BookCover VARCHAR(255),
CONSTRAINT PK_Book PRIMARY KEY(ISBN)
);
CREATE TABLE Owned (
UserID INT NOT NULL,
ISBN VARCHAR(255) NOT NULL,
Copies int NOT NULL DEFAULT 1,
CreatedDate DATE,
Review LONGTEXT,
Rate int,
AvailableCopies INT NOT NULL DEFAULT 1,
CONSTRAINT FK_OwnedUser FOREIGN KEY(UserID)
REFERENCES Users(UserID),
CONSTRAINT FK_OwnedBook FOREIGN KEY(ISBN)
REFERENCES Books(ISBN) ON DELETE CASCADE,
CONSTRAINT PK_Owned PRIMARY KEY (UserID,ISBN)
);
CREATE TABLE Members (
MemberID INT NOT NULL AUTO_INCREMENT,
LastName VARCHAR(50) NOT NULL,
FirstName VARCHAR(50) NOT NULL,
PhoneNumber VARCHAR(30) NOT NULL,
Email VARCHAR(255),
MemberAddress TEXT,
BooksBorrowed INT NOT NULL,
UserID INT NOT NULL,
Photo VARCHAR (255) DEFAULT "./uploads/noimage.png",
FOREIGN KEY(UserID) REFERENCES Users(UserID),
CONSTRAINT PK_Member PRIMARY KEY(MemberID)
);
CREATE TABLE Transactions (
TransactionID INT NOT NULL AUTO_INCREMENT,
ISBN VARCHAR(255) NOT NULL,
MemberID INT NOT NULL,
BorrowDate DATE NOT NULL,
ReturnDate DATE,
ExpiredDate DATE NOT NULL,
TransactionStatus VARCHAR(30),
CONSTRAINT PK_Transaction PRIMARY KEY(TransactionID),
CONSTRAINT FK_BorrowMember FOREIGN KEY(MemberID)
REFERENCES Members(MemberID),
CONSTRAINT FK_BorrowedBook FOREIGN KEY(ISBN)
REFERENCES Books(ISBN) ON DELETE CASCADE
);
CREATE TABLE Cart (
CartID INT NOT NULL,
MemberID INT NOT NULL,
ISBN VARCHAR(255) NOT NULL,
CONSTRAINT FK_CartMember FOREIGN KEY(MemberID)
REFERENCES Members(MemberID),
CONSTRAINT FK_CartBook FOREIGN KEY(ISBN)
REFERENCES Books(ISBN)
)