-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcreate_tables.sh
74 lines (64 loc) · 1.96 KB
/
create_tables.sh
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
#!/bin/sh
#export LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib
sqlplus64 "username/password@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=oracle.scs.ryerson.ca)(Port=1521))(CONNECT_DATA=(SID=orcl)))"<<EOF
CREATE TABLE userAccount(
UserID NUMBER,
Email VARCHAR2(100) UNIQUE,
UserPassword VARCHAR2(20) NOT NULL,
Dob DATE,
Gender CHAR(3),
Subscription INTEGER,
CardNo VARCHAR2(16) NOT NULL,
PRIMARY KEY (UserID)
);
CREATE TABLE addressUser(
UserID NUMBER REFERENCES userAccount(UserID) ON DELETE CASCADE,
Street VARCHAR2(100),
City VARCHAR2(50),
Province VARCHAR2(50),
PostalCode VARCHAR2(10),
PRIMARY KEY(UserID)
);
CREATE TABLE artist(
ArtistID NUMBER PRIMARY KEY,
ArtistName VARCHAR2(100)
);
CREATE TABLE album(
AlbumID NUMBER PRIMARY KEY,
AlbumName VARCHAR2(100),
AlbumYear INTEGER,
Genre VARCHAR2(20)
);
CREATE TABLE release(
AlbumID NUMBER REFERENCES album(AlbumID) ON DELETE CASCADE,
ArtistID NUMBER REFERENCES artist(ArtistID) ON DELETE CASCADE,
PRIMARY KEY(AlbumID, ArtistID)
);
CREATE TABLE song(
SongID NUMBER,
ArtistID NUMBER REFERENCES artist(ArtistID) ON DELETE CASCADE,
AlbumID NUMBER REFERENCES album(AlbumID) ON DELETE CASCADE,
Streams NUMBER DEFAULT 0,
SongName VARCHAR2(100),
SongLength NUMBER,
Genre VARCHAR2(100),
PRIMARY KEY(SongID)
);
CREATE TABLE playlist(
UserID REFERENCES userAccount(UserID) ON DELETE CASCADE,
PlaylistID NUMBER,
PlaylistName VARCHAR2(100),
PRIMARY KEY(PlaylistID) -- Deleted UserID from PRIMARY KEY (WILL ASK TA DURING DEMO)
);
CREATE TABLE contains(
PlaylistID REFERENCES playlist(PlaylistID) ON DELETE CASCADE,
SongID REFERENCES song(SongID) ON DELETE CASCADE
);
CREATE TABLE follows(
UserID NUMBER REFERENCES userAccount(UserID) ON DELETE CASCADE,
ArtistID NUMBER REFERENCES artist(ArtistID) ON DELETE CASCADE,
Followers NUMBER DEFAULT 0,
Followering NUMBER DEFAULT 0
);
exit;
EOF