-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathMASTER ERD Table Setup.sql
More file actions
290 lines (244 loc) · 8.82 KB
/
MASTER ERD Table Setup.sql
File metadata and controls
290 lines (244 loc) · 8.82 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
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
/*** SURVEY ***/
-- detail type, detail, person detail, person
-- USE DOGPAWS_Surveys_Temp
USE DOGPAWS_MASTER
GO
Create Table tblSURVEY_TYPE(
SurveyTypeID int Identity Not Null,
SurveyTypeName varchar(100) Not Null,
SurveyTypeDescr varchar(500) Not Null,
Constraint pktblSURVEY_TYPE Primary Key (SurveyTypeID)
);
Go
Create Table tblOBJECTIVE(
ObjectiveID int Identity Not Null,
ObjectiveName varchar(100) Not Null,
ObjectiveDescr varchar(500) Not Null,
Constraint pktblOBJECTIVE Primary Key (ObjectiveID)
);
Go
Create Table tbLDISTRIBUTION(
DistributionID int Identity Not Null,
DistributionName varchar(100) Not Null,
DistributionDescr varchar(500) Not Null,
Constraint pktblDistribution Primary Key (DistributionID)
);
Go
CREATE TABLE tblSURVEY (
SurveyID INT PRIMARY KEY IDENTITY(1,1) NOT NULL,
SurveyTypeID INT FOREIGN KEY REFERENCES tblSURVEY_TYPE(SurveyTypeID) NOT NULL,
SurveyName VARCHAR(500) NOT NULL,
SurveyBeginDate DATETIME NOT NULL,
SurveyEnd DATETIME NULL
)
GO
Create Table tblSURVEY_DISTRIBUTION(
SurveyDistID int Identity Not Null,
SurveyID int Not Null,
DistributionID int Not Null,
SurveyDisDate date Not Null,
Constraint pktblSURVEY_DISTRIBUTION Primary Key (SurveyDistID),
Constraint fkSurveyID Foreign Key (SurveyID) References tblSURVEY(SurveyID),
Constraint fkDistributionID Foreign Key (DistributionID) References tblDISTRIBUTION(DistributionID)
);
Go
CREATE TABLE tblDETAIL_TYPE(
DetailTypeID INT PRIMARY KEY IDENTITY(1,1),
DetailTypeName varchar(50) NOT NULL,
DetailTypeDescr varchar(500)
)
CREATE TABLE tblDETAIL(
DetailID INT PRIMARY KEY IDENTITY(1,1),
DetailName varchar(50) NOT NULL,
DetailTypeID INT FOREIGN KEY REFERENCES tblDETAIL_TYPE(DetailTypeID),
DetailDesc varchar(500)
)
CREATE TABLE tblPROFILE_TYPE(
ProfileTypeID INT PRIMARY KEY IDENTITY(1,1),
ProfileTypeName varchar(50) NOT NULL,
ProfileTypeDesc varchar(500)
)
CREATE TABLE tblPROFILE(
ProfileID INT PRIMARY KEY IDENTITY(1,1),
ProfileTypeID INT FOREIGN KEY REFERENCES tblPROFILE_TYPE(ProfileTypeID),
Fname varchar(20) NOT NULL,
Lname varchar(20) NOT NULL,
BirthDate DATE,
Age INT,
Gender varchar(10),
NetID INT,
OptIn BIT,
Email varchar(50),
Registered bit,
[Password] varchar(50)
)
CREATE TABLE tblPROFILE_DETAIL(
ProfileDetailID INT PRIMARY KEY IDENTITY(1,1),
ProfileID INT FOREIGN KEY REFERENCES tblPROFILE(ProfileID),
DetailID INT FOREIGN KEY REFERENCES tblDETAIL(DetailID),
DateValue DATE,
CharValue CHAR,
NumericValue NUMERIC
)
CREATE TABLE tblQUESTION_TYPE(
QuestionTypeID int PRIMARY KEY IDENTITY(1,1),
QuestionTypeName varchar(50) NOT NULL,
QuestionTypeDescr varchar(200)
)
GO
CREATE TABLE tblRESPONSE (
ResponseID INT IDENTITY(1,1) PRIMARY KEY NOT NULL,
ProfileID INT FOREIGN KEY REFERENCES tblPROFILE(ProfileID) NOT NULL,
ResponseDateTime DATETIME NOT NULL,
ResponseName VARCHAR(500) NOT NULL
)
GO
CREATE TABLE tblQUESTION(
QuestionID int PRIMARY KEY IDENTITY(1,1),
QuestionTypeID int NOT NULL FOREIGN KEY REFERENCES tblQUESTION_TYPE(QuestionTypeID),
QuestionName varchar(500) NOT NULL
)
CREATE TABLE tblSURVEY_QUESTION(
SurveyQuestionID int PRIMARY KEY IDENTITY(1,1),
SurveyID int NOT NULL FOREIGN KEY REFERENCES tblSURVEY(SurveyID),
QuestionID int NOT NULL FOREIGN KEY REFERENCES tblQUESTION(QuestionID),
QuestionNumber int NOT NULL
)
GO
CREATE TABLE tblSURVEY_QUESTION_RESPONSE (
SurvQuesRespID INT IDENTITY(1,1) PRIMARY KEY NOT NULL,
SurveyQuestionID INT FOREIGN KEY REFERENCES tblSURVEY_QUESTION(SurveyQuestionID) NOT NULL,
ResponseID INT FOREIGN KEY REFERENCES tblRESPONSE(ResponseID) NOT NULL
)
-- create Table tblSURVEY_OBJECTIVE
Create Table tblSURVEY_OBJECTIVE(
SurveyObjectiveID int Constraint pkSurveyObjectiveID Primary Key Identity,
SurveyID int,
ObjectiveID int
)
go
-- create Table tblSURVEY_STATUS
Create Table tblSURVEY_STATUS(
SurveyStatusID int Constraint pkSurveyStatusID Primary Key Identity,
SurveyID int,
StatusID int,
BeginDate date
)
go
-- create Table tblSTATUS
Create Table tblSTATUS(
StatusID int Constraint pkStatusID Primary Key Identity,
StatusName nvarchar(100),
StatusDescr nvarchar(100)
)
go
-- alter the table to add with constraints (foreign keys)
Alter Table tblSURVEY_OBJECTIVE
Add Constraint fkSurveyIDSO Foreign Key(SurveyID) References tblSURVEY(SurveyID),
Constraint fkObjectiveID Foreign Key(ObjectiveID) References tblOBJECTIVE(ObjectiveID)
Alter Table tblSURVEY_STATUS
Add Constraint fkSurveyIDSS Foreign Key(SurveyID) References tblSURVEY(SurveyID),
Constraint fkStatusID Foreign Key(StatusID) References tblSTATUS(StatusID)
INSERT INTO tblDETAIL_TYPE(DetailTypeName)
VALUES('student year'), ('resident status'), ('housing status');
INSERT INTO tblSURVEY_TYPE(SurveyTypeName, SurveyTypeDescr)
VALUES('Interest', 'Initial DogPaws Interest Survey')
INSERT INTO tblQUESTION_TYPE(QuestionTypeName, QuestionTypeDescr) VALUES ('Multiple choice', 'The respondents select one or more options from a list of predefined answers.')
INSERT INTO tblQUESTION_TYPE(QuestionTypeName, QuestionTypeDescr) VALUES ('Rating scale', 'The respondents select the number that most accurately represents their response from a range of values. (i.e. 1 to 10)')
INSERT INTO tblQUESTION_TYPE(QuestionTypeName, QuestionTypeDescr) VALUES ('Likert scale', 'The respondents select the options that most accurately represents their response from a range of values. (i.e. strongly agree, agree, disagree, strongly disagree)')
INSERT INTO tblQUESTION_TYPE(QuestionTypeName, QuestionTypeDescr) VALUES ('Short answer', 'The respondents will type their answer into a comment box and don�t provide specific pre-set answer options.')
INSERT INTO tblQUESTION_TYPE(QuestionTypeName, QuestionTypeDescr) VALUES ('Ranking', 'The respondents will order the list of options according to their preference.')
/*** ACTIVITY ***/
Create Table tblLOCATION(
LocationID int Primary Key Identity(1,1),
LocationName varchar(100) Not Null,
LocationDesc varchar(500)
);
Create Table tblBUILDING(
BuildingID int Primary Key Identity(1,1),
LocationID INT FOREIGN KEY REFERENCES tblLOCATION(LocationID),
BuildingName varchar(100) Not Null,
BuildingDesc varchar(500),
BuildingShortName varchar(10)
);
-- Section 3
CREATE TABLE tblQUARTER(
QuarterID int PRIMARY KEY Identity(1,1),
QuarterName varchar(20) NOT NULL
);
CREATE TABLE tblCOURSE(
CourseID INT PRIMARY KEY Identity(1,1),
CourseName varchar(100) NOT NULL,
CoursePrefix varchar(10),
CourseLevel varchar(10)
);
CREATE TABLE tblCLASS(
ClassID int Identity,
CourseID int,
QuarterID int,
[Year] varchar(4),
Section varchar(2),
CONSTRAINT pkClass PRIMARY KEY (ClassID),
CONSTRAINT fkCourse FOREIGN KEY (CourseID) REFERENCES tblCOURSE(CourseID),
CONSTRAINT fkQuarter FOREIGN KEY (QuarterID) REFERENCES tblQUARTER(QuarterID)
);
CREATE TABLE tblINTEREST_TYPE(
InterestTypeID INT PRIMARY KEY IDENTITY(1,1),
InterestTypeName VARCHAR(100) NOT NULL,
InterestTypeDescr VARCHAR(500) NULL
);
GO
CREATE TABLE tblACTIVITY_TYPE(
ActivityTypeID INT PRIMARY KEY IDENTITY(1,1),
ActivityTypeName VARCHAR(100) NOT NULL,
ActivityTypeDescr VARCHAR(500) NULL
);
GO
CREATE TABLE tblINTEREST(
InterestID INT PRIMARY KEY IDENTITY(1,1),
InterestTypeID INT FOREIGN KEY REFERENCES tblINTEREST_TYPE(InterestTypeID) NOT NULL,
InterestName VARCHAR(100) NOT NULL,
InterestDescr VARCHAR(500) NULL
);
GO
CREATE TABLE tblACTIVITY (
ActivityID INT PRIMARY KEY IDENTITY(1,1),
ActivityName varchar(50) NOT NULL,
ClassID INT FOREIGN KEY REFERENCES tblCLASS(ClassID),
BuildingID INT FOREIGN KEY REFERENCES tblBUILDING(BuildingID) NOT NULL,
InterestID INT FOREIGN KEY REFERENCES tblINTEREST(InterestID) NOT NULL,
ActivityTypeID INT FOREIGN KEY REFERENCES tblACTIVITY_TYPE(ActivityTypeID)
)
CREATE TABLE tblPROFILE_ACTIVITY (
ProfileActivityID INT PRIMARY KEY IDENTITY(1,1),
ProfileID INT FOREIGN KEY REFERENCES tblPROFILE(ProfileID) NOT NULL,
ActivityID INT FOREIGN KEY REFERENCES tblACTIVITY(ActivityID) NOT NULL,
ActivityTime DATETIME
)
CREATE TABLE tblRATING (
RatingID INT PRIMARY KEY IDENTITY(1,1),
RatingName varchar(50) NOT NULL,
RatingAbbrev varchar(50) NOT NULL,
RatingNumeric varchar(50) NOT NULL,
RatingDescr varchar(500)
)
CREATE TABLE tblREVIEW (
ReviewID INT PRIMARY KEY IDENTITY(1,1),
ActivityID INT FOREIGN KEY REFERENCES tblACTIVITY(ActivityID) NOT NULL,
RatingID INT FOREIGN KEY REFERENCES tblRATING(RatingID) NOT NULL,
ReviewContent varchar(2000) NOT NULL,
ReviewDate datetime NOT NULL
)
-- tblRELATIONSHIP
CREATE TABLE tblRELATIONSHIP (
RelationshipID INT PRIMARY KEY IDENTITY(1,1),
RelationshipName VARCHAR(30) NOT NULL
)
-- tblFRIEND
CREATE TABLE tblFRIEND (
FriendID INT PRIMARY KEY IDENTITY(1,1),
ProfileID1 INT FOREIGN KEY REFERENCES tblPROFILE(ProfileID) NOT NULL,
ProfileID2 INT FOREIGN KEY REFERENCES tblPROFILE(ProfileID) NOT NULL,
RelationshipID INT FOREIGN KEY REFERENCES tblRELATIONSHIP(RelationshipID) NOT NULL,
AddDate DATETIME NOT NULL
)