-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRunSql.sql
More file actions
185 lines (148 loc) · 4.74 KB
/
Copy pathRunSql.sql
File metadata and controls
185 lines (148 loc) · 4.74 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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
DROP TABLE appointments;
drop table responsibilities
DROP TABLE milestones;
drop table submissions
DROP TABLE discussionsThread;
DROP TABLE discussions;
DROP TABLE group_folder_files;
DROP TABLE files;
DROP TABLE group_folders;
DROP TABLE versionFiles;
DROP TABLE user_groups;
DROP TABLE groups;
DROP TABLE website_user_roles;
DROP TABLE initial_login;
DROP TABLE user_information;
DROP TABLE website_roles;
DROP TABLE website_users;
CREATE DATABASE collabDB;
USE collabDB;
DROP LOGIN seng2050Ass3;
CREATE LOGIN seng2050Ass3
WITH PASSWORD = 'Passw0rd123!';
CREATE USER seng2050Ass3
FOR LOGIN seng2050Ass3;
ALTER ROLE db_datareader ADD member seng2050Ass3;
GRANT SELECT, INSERT, UPDATE, DELETE
TO seng2050Ass3;
CREATE TABLE website_users (
username VARCHAR(30) NOT NULL PRIMARY KEY,
password VARCHAR(30) NOT NULL
)
CREATE TABLE website_roles (
role VARCHAR(30) NOT NULL PRIMARY KEY
)
CREATE TABLE user_information (
username VARCHAR(30) NOT NULL PRIMARY KEY,
studentId INT NOT NULL,
phoneNo INT,
firstName varChar(30) not null,
lastName varChar(30) not null,
)
SELECT * FROM user_information WHERE username='bitchboi3';
CREATE TABLE initial_login (
username VARCHAR(30) NOT NULL PRIMARY KEY,
loginTimes INT,
FOREIGN KEY(username) REFERENCES website_users(username)
)
CREATE TABLE website_user_roles (
username VARCHAR(30) NOT NULL,
role VARCHAR(30) NOT NULL,
PRIMARY KEY (username, role),
FOREIGN KEY(username) REFERENCES website_users(username),
FOREIGN KEY(role) REFERENCES website_roles(role)
)
-------- TABLE FOR GROUPS ---------------------------------------
CREATE TABLE groups (
group_name VARCHAR(30) NOT NULL PRIMARY KEY
)
CREATE TABLE user_groups (
username VARCHAR(30) NOT NULL,
group_name VARCHAR(30) NOT NULL,
FOREIGN KEY(username) REFERENCES website_users(username),
FOREIGN KEY(group_name) REFERENCES groups(group_name)
)
CREATE TABLE group_folders (
folder_name VARCHAR(30) NOT NULL PRIMARY KEY,
group_name VARCHAR(30) NOT NULL,
FOREIGN KEY(group_name) REFERENCES groups(group_name)
)
CREATE TABLE files (
fileID int IDENTITY(1,1) NOT NULL PRIMARY KEY,
binary_file VARBINARY(MAX) NOT NULL,
file_name VARCHAR(30) NOT NULL,
uploaded_name VARCHAR(30) NOT NULL,
file_description VARCHAR(1000) NOT NULL,
groupName VARCHAR(30) NOT NULL,
FOREIGN KEY(uploaded_name) REFERENCES website_users(username)
)
CREATE TABLE versionFiles (
file_version int NOT NULL,
file_name VARCHAR(30) NOT NULL,
binary_file VARBINARY(MAX) NOT NULL,
file_desc VARCHAR(1000) NOT NULL,
uploadedName varchar(30) NOT NULL
)
CREATE TABLE group_folder_files (
folder_name VARCHAR(30) NOT NULL,
fileID INT IDENTITY(1,1) NOT NULL,
FOREIGN KEY(folder_name) REFERENCES group_folders(folder_name),
FOREIGN KEY(fileID) REFERENCES files(fileID)
)
CREATE TABLE discussions(
discussionID INT NOT NULL Identity(1,1) PRIMARY KEY,
title VARCHAR(100) NOT NULL,
username VARCHAR(30) NOT NULL,
description VARCHAR(1000) NOT NULL,
FOREIGN KEY(username) REFERENCES website_users(username)
)
CREATE TABLE discussionsThread(
threadID INT NOT NULL Identity(1,1) PRIMARY KEY,
discussionID INT NOT NULL,
username VARCHAR(30) NOT NULL,
description VARCHAR(1000) NOT NULL,
FOREIGN KEY(discussionID) REFERENCES discussions(discussionID),
FOREIGN KEY(username) REFERENCES website_users(username)
)
CREATE TABLE milestones(
milestoneID INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
milestoneTitle varChar(30) not null,
description VARCHAR(1000) NOT NULL,
dateDue varchar(30) not null,
)
CREATE TABLE appointments(
appointmentID INT not null identity(1,1) primary key,
teacher VARCHAR(30) not null,
username VARCHAR(30) not null,
description VARCHAR(1000) not null,
timeDue varchar(30) not null,
dateDue Varchar(30) not null,
FOREIGN KEY(username) REFERENCES website_users(username),
)
CREATE table responsibilities(
responseID int IDENTITY(1,1) NOT NULL,
username varchar(30) NOT NULL,
description VARCHAR(1000),
dateInsert varchar(30) NOT NULL,
dateDue varchar(30) NOT NULL,
userGroup varchar(30) NOT NULL,
completed varchar(2) NOT NULL
)
CREATE TABLE submissions(
submissionID int IDENTITY(1,1) not null,
groupName varChar(30) not null,
milestoneID int not null,
subComment varChar(1000) not null,
comments varChar(1000),
mark int
FOREIGN KEY (groupName) references groups(group_name),
FOREIGN KEY (milestoneID) references milestones(milestoneID),
)
INSERT into website_users VALUES ('Teacher99','Covid19Bad')
INSERT INTO website_roles VALUES('student');
INSERT INTO website_roles VALUES ('teacher');
INSERT INTO website_user_roles VALUES ('Teacher99','teacher');
INSERT INTO groups VALUES('Uni Fun club');
INSERT INTO groups VALUES('Covid 19 Hate Club');
INSERT INTO groups VALUES('Roller Haters Club');
INSERT INTO groups VALUES('Flat Earth Club');