Skip to content

Commit 2bf4f44

Browse files
authored
Merge pull request #142 from devinmatte/schema
Schema Changes
2 parents 8dfcc83 + 6461277 commit 2bf4f44

File tree

7 files changed

+64
-24
lines changed

7 files changed

+64
-24
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "schedulemaker",
3-
"version": "3.0.29",
3+
"version": "3.0.30",
44
"private": true,
55
"description": "A course database lookup tool and schedule building web application for use at Rochester Institute of Technology.",
66
"main": "index.php",

schema/migrationScripts/3.0.30.sql

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
ALTER TABLE `sections`
2+
CHANGE `type` `type` ENUM ('R', 'N', 'H', 'BL', 'OL', 'O')
3+
CHARACTER SET latin1
4+
COLLATE latin1_swedish_ci NOT NULL DEFAULT 'R'
5+
COMMENT 'R=regular, N=night, OL=online, H=honors, BL=????',
6+
CHANGE `maxenroll` `maxenroll` SMALLINT(3) UNSIGNED NOT NULL
7+
COMMENT 'max enrollment',
8+
CHANGE `curenroll` `curenroll` SMALLINT(3) UNSIGNED NOT NULL
9+
COMMENT 'current enrollment',
10+
CHANGE `instructor` `instructor` VARCHAR(64) NOT NULL DEFAULT 'TBA'
11+
COMMENT 'Instructor\'s Name';
12+
13+
UPDATE `sections`
14+
SET `type` = 'OL'
15+
WHERE `type` = 'O';
16+
17+
ALTER TABLE `sections`
18+
CHANGE `type` `type` ENUM ('R', 'N', 'H', 'BL', 'OL')
19+
CHARACTER SET latin1
20+
COLLATE latin1_swedish_ci NOT NULL DEFAULT 'R'
21+
COMMENT 'R=regular, N=night, OL=online, H=honors, BL=????';
22+
23+
ALTER TABLE `times`
24+
CHANGE `room` `room` VARCHAR(10)
25+
CHARACTER SET latin1
26+
COLLATE latin1_swedish_ci NOT NULL
27+
COMMENT 'room number';
28+
29+
INSERT INTO `buildings` (`number`, `code`, `name`) VALUES ('ZAG', 'ZAG', 'Building in Croatia');
30+
31+
ALTER TABLE `quarters`
32+
DROP `breakstart`,
33+
DROP `breakend`;
34+
35+
ALTER TABLE `departments`
36+
CHANGE `title` `title` VARCHAR(30)
37+
CHARACTER SET latin1
38+
COLLATE latin1_swedish_ci NULL;

schema/procedures/InsertOrUpdateSection.sql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ CREATE PROCEDURE InsertOrUpdateSection(
44
IN p_course INT,
55
IN p_section VARCHAR(4),
66
IN p_title VARCHAR(50),
7-
IN p_instructor VARCHAR(30),
8-
IN p_type VARCHAR(1),
7+
IN p_instructor VARCHAR(64),
8+
IN p_type VARCHAR(2),
99
IN p_status VARCHAR(1),
1010
IN p_maxenroll INT,
1111
IN p_curenroll INT

schema/tables/quarters.sql

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,5 @@
1111
CREATE TABLE quarters (
1212
`quarter` SMALLINT(5) UNSIGNED NOT NULL PRIMARY KEY,
1313
`start` DATE NOT NULL,
14-
`end` DATE NOT NULL,
15-
`breakstart` DATE NOT NULL,
16-
`breakend` DATE NOT NULL
14+
`end` DATE NOT NULL
1715
) ENGINE=InnoDb;

schema/tables/sections.sql

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@ CREATE TABLE sections (
1212
`course` INT UNSIGNED NOT NULL,
1313
`section` VARCHAR(4) NOT NULL,
1414
`title` VARCHAR(30) NOT NULL,
15-
`type` ENUM('R','N','O','H') NOT NULL DEFAULT 'R',
15+
`type` ENUM('R','N','OL','H', 'BL') NOT NULL DEFAULT 'R',
1616
`status` ENUM('O','C','X') NOT NULL,
17-
`instructor` VARCHAR(30) NOT NULL DEFAULT 'TBA',
18-
`maxenroll` TINYINT(3) UNSIGNED NOT NULL,
19-
`curenroll` TINYINT(3) UNSIGNED NOT NULL
17+
`instructor` VARCHAR(64) NOT NULL DEFAULT 'TBA',
18+
`maxenroll` SMALLINT(3) UNSIGNED NOT NULL,
19+
`curenroll` SMALLINT(3) UNSIGNED NOT NULL
2020
) ENGINE=InnoDB;
2121

2222
-- UNIQUE KEYS -------------------------------------------------------------

schema/tables/times.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ CREATE TABLE times (
1515
`start` SMALLINT(4) UNSIGNED NOT NULL,
1616
`end` SMALLINT(4) UNSIGNED NOT NULL,
1717
`building` VARCHAR(5) NULL DEFAULT NULL,
18-
`room` VARCHAR(4) NULL DEFAULT NULL
18+
`room` VARCHAR(10) NULL DEFAULT NULL
1919
)ENGINE=InnoDB;
2020

2121
-- FOREIGN KEY CONSTRAINTS -------------------------------------------------

tools/processDump.php

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -80,24 +80,31 @@ function halt($messages) {
8080
* Inserts or updates a course. This function calls the stored procedure for
8181
* inserting or updating a course.
8282
* @param $quarter int The term that the course is in
83-
* @param $departNum int The number of the department
84-
* @param $departCode int The code for the department
83+
* @param $departCode String The code of the department
84+
* @param $classCode String The code for the class
8585
* @param $course int The number of the course
8686
* @param $credits int The credits the course offers
8787
* @param $title String The title of the course
8888
* @param $description String The description for the course
8989
* @return mixed String of error message returned on failure.
9090
* Integer of course ID returned on success
9191
*/
92-
function insertOrUpdateCourse($quarter, $departNum, $departCode, $course, $credits, $title, $description) {
92+
function insertOrUpdateCourse($quarter, $departCode, $classCode, $course, $credits, $title, $description) {
9393
global $dbConn, $coursesUpdated, $coursesAdded;
9494
// Call the stored proc
95-
$query = "CALL InsertOrUpdateCourse({$quarter}, {$departNum}, '{$departCode}', '{$course}', {$credits}, '{$title}', '{$description}')";
95+
// TODO: Refactor out department ID number (0000)
96+
$query = "CALL InsertOrUpdateCourse({$quarter}, 0000, '{$classCode}', '{$course}', {$credits}, '{$title}', '{$description}')";
9697
$success = mysqli_multi_query($dbConn, $query);
9798

9899
// Catch errors or return the id
99100
if(!$success) {
100-
return mysqli_error($dbConn);
101+
// If the class code errors out, try the department code
102+
// TODO: Refactor out department ID number (0000)
103+
$query = "CALL InsertOrUpdateCourse({$quarter}, 0000, '{$departCode}', '{$course}', {$credits}, '{$title}', '{$description}')";
104+
$success = mysqli_multi_query($dbConn, $query);
105+
if(!$success) {
106+
return mysqli_error($dbConn);
107+
}
101108
}
102109

103110
// First result set is updated vs inserted
@@ -457,13 +464,10 @@ function procInstrArray($lineSplit) {
457464
preg_match("/(\d)(\d{3})/", $row['strm'], $match);
458465
$row['strm'] = $match[1] . 0 . $match[2];
459466

460-
// Create a default break value
461-
$break = '0000-00-00';
462-
463467
// Insert the quarter
464468
// TODO: Change schema from quarters to semesters (I doubt they're switching back anytime soon)
465-
$query = "INSERT INTO quarters (quarter, start, end, breakstart, breakend)";
466-
$query .= " VALUES({$row['strm']}, '{$row['start_dt']}', '{$row['end_dt']}', $break, $break)";
469+
$query = "INSERT INTO quarters (`quarter`, `start`, `end`)";
470+
$query .= " VALUES({$row['strm']}, '{$row['start_dt']}', '{$row['end_dt']}')";
467471
$query .= " ON DUPLICATE KEY UPDATE";
468472
$query .= " start='{$row['start_dt']}', end='{$row['end_dt']}'";
469473

@@ -561,10 +565,10 @@ function procInstrArray($lineSplit) {
561565
$row['course_descrlong'] = mysqli_real_escape_string($dbConn, $row['course_descrlong']);
562566

563567
// Insert or update the course
564-
$courseId = insertOrUpdateCourse($row['qtr'], 0000, $row['acad_org'], $row['catalog_nbr'],
568+
$courseId = insertOrUpdateCourse($row['qtr'], $row['acad_org'], $row['subject'], $row['catalog_nbr'],
565569
$row['units'], $row['descr'], $row['course_descrlong']);
566-
if(!is_numeric($courseId)) {
567-
echo(" *** Error: Failed to update {$row['qtr']} {$row['subject']}{$row['acad_org']}-{$row['catalog_nbr']}\n");
570+
if (!is_numeric($courseId)) {
571+
echo(" *** Error: Failed to update {$row['qtr']} {$row['subject']}-{$row['catalog_nbr']}\n");
568572
echo(" ");
569573
var_dump($courseId);
570574
echo("\n");

0 commit comments

Comments
 (0)