Skip to content
Snippets Groups Projects
Commit beffe7d3 authored by Finlay White's avatar Finlay White :speech_balloon:
Browse files

badges added

parent 9384dc51
No related branches found
No related tags found
No related merge requests found
DROP SCHEMA IF EXISTS `SuperGeeks`; DROP SCHEMA IF EXISTS `SuperGeeks`;
CREATE SCHEMA `SuperGeeks`; CREATE SCHEMA `SuperGeeks`;
USE `SuperGeeks`; USE `SuperGeeks`;
DROP TABLE IF EXISTS `Parents`; DROP TABLE IF EXISTS `Parents`;
CREATE TABLE `Parents`( CREATE TABLE `Parents`(
parentID varchar(40) not null unique, parentID varchar(40) not null unique,
...@@ -16,7 +16,7 @@ phonenum int(10)); ...@@ -16,7 +16,7 @@ phonenum int(10));
DROP TABLE IF EXISTS `Students`; DROP TABLE IF EXISTS `Students`;
CREATE TABLE `Students`( CREATE TABLE `Students`(
studentID varchar(40) not null unique, studentID varchar(40) not null unique,
primary key(studentID), studentCode int key auto_increment,
fname varchar(35), fname varchar(35),
lname varchar(35), lname varchar(35),
-- The UK Government Data Standards Catalogue reccomends 35 characters for each the first name and last name -- The UK Government Data Standards Catalogue reccomends 35 characters for each the first name and last name
...@@ -26,10 +26,10 @@ parentsID varchar(40), ...@@ -26,10 +26,10 @@ parentsID varchar(40),
groupID varchar(40), groupID varchar(40),
FOREIGN KEY (parentsID) REFERENCES Parents(parentID) FOREIGN KEY (parentsID) REFERENCES Parents(parentID)
-- parent ID is stored in student rather than the parents table so that one parent can have many children -- parent ID is stored in student rather than the parents table so that one parent can have many children
-- and not one child can have many parents. A child may have multiple parents irl but they would share an
-- account
); );
-- account ALTER TABLE Students auto_increment = 30001;
DROP TABLE IF EXISTS `Volunteers`; DROP TABLE IF EXISTS `Volunteers`;
CREATE TABLE `Volunteers`( CREATE TABLE `Volunteers`(
VolunteerID varchar(40) not null unique, VolunteerID varchar(40) not null unique,
...@@ -60,8 +60,7 @@ CREATE TABLE `Badge`( ...@@ -60,8 +60,7 @@ CREATE TABLE `Badge`(
BadgeID varchar(40) not null unique, BadgeID varchar(40) not null unique,
primary key(BadgeID), primary key(BadgeID),
badgeName varchar(35), badgeName varchar(35),
badgeDesc varchar(255), badgeDesc varchar(255)
RequirementID varchar(40)
); );
DROP TABLE IF EXISTS `BadgeAwarded`; DROP TABLE IF EXISTS `BadgeAwarded`;
CREATE TABLE `BadgeAwarded`( CREATE TABLE `BadgeAwarded`(
...@@ -77,8 +76,6 @@ CREATE TABLE `BadgeAwarded`( ...@@ -77,8 +76,6 @@ CREATE TABLE `BadgeAwarded`(
); );
-- DROP TABLE IF EXISTS `Badgereqs`; -- DROP TABLE IF EXISTS `Badgereqs`;
CREATE TABLE `Badgereqs`( CREATE TABLE `Badgereqs`(
RequirementID varchar(40) not null unique,
primary key(RequirementID),
mustbecompleted varchar(40), mustbecompleted varchar(40),
tocomplete varchar(40), tocomplete varchar(40),
FOREIGN KEY (mustbecompleted) REFERENCES Badge(BadgeID), FOREIGN KEY (mustbecompleted) REFERENCES Badge(BadgeID),
...@@ -99,49 +96,107 @@ Alter table `Badge`ADD FOREIGN KEY (RequirementID) REFERENCES Badgereqs(Requirem ...@@ -99,49 +96,107 @@ Alter table `Badge`ADD FOREIGN KEY (RequirementID) REFERENCES Badgereqs(Requirem
drop procedure if exists addParent; drop procedure if exists addParent;
delimiter $$ delimiter $$
CREATE PROCEDURE addParent( CREATE PROCEDURE addParent(
IN fname varchar(35), IN fname varchar(35),
IN lname varchar(35), IN lname varchar(35),
IN email varchar(320), IN email varchar(320),
IN passwerd varchar(70), IN passwerd varchar(70),
IN phonenum int(10)) IN phonenum int(10))
BEGIN BEGIN
DECLARE EXIT HANDLER FOR 1062 DECLARE EXIT HANDLER FOR 1062
BEGIN BEGIN
SELECT 'User already exists' as ERROR ; SELECT 'User already exists' as ERROR ;
END; END;
-- if (locate("@",email) = 0 -- if (locate("@",email) = 0
-- Select "invalid email as Error"; -- Select "invalid email as Error";
INSERT INTO Parents(parentID,fname,lname,email,phonenum) values INSERT INTO Parents(parentID,fname,lname,email,phonenum) values
(md5(concat(email,passwerd)),fname,lname,email,phonenum); (md5(concat(email,passwerd)),fname,lname,email,phonenum);
END$$addParent END$$addParent
DELIMITER ; DELIMITER ;
drop procedure if exists addVolunteer; drop procedure if exists addVolunteer;
delimiter $$ delimiter $$
CREATE PROCEDURE addVolunteer( CREATE PROCEDURE addVolunteer(
IN fname varchar(35), IN fname varchar(35),
IN lname varchar(35), IN lname varchar(35),
IN email varchar(320), IN email varchar(320),
IN passwerd varchar(70), IN passwerd varchar(70),
IN phonenum int(10)) IN phonenum int(10))
BEGIN BEGIN
DECLARE EXIT HANDLER FOR 1062 DECLARE EXIT HANDLER FOR 1062
BEGIN BEGIN
SELECT 'User already exists' as ERROR ; SELECT 'User already exists' as ERROR ;
END; END;
INSERT INTO Volunteers(VolunteerID,fname,lname,email,emergencycontact) values INSERT INTO Volunteers(VolunteerID,fname,lname,email,emergencycontact) values
(md5(concat(email,passwerd)),fname,lname,email,phonenum); (md5(concat(email,passwerd)),fname,lname,email,phonenum);
END$$addParent END$$
DELIMITER ;
drop procedure if exists addBadgereq;
delimiter $$
CREATE PROCEDURE addBadgereq(
IN youNeed varchar(40),
IN toGet varchar(40))
-- I use this naming scheme as it just makes it easy to understand
-- which badge is which in this relationship
BEGIN
DECLARE EXIT HANDLER FOR 1452
BEGIN
SELECT 'Badge not found' as ERROR ;
END;
INSERT INTO Badgereqs(mustbecompleted,tocomplete) values
(youNeed,toGet) ;
END$$
DELIMITER ;
drop procedure if exists addBadge;
delimiter $$
CREATE PROCEDURE addBadge(
IN badgeName varchar(40),
IN badgeDesc varchar(255))
BEGIN
DECLARE EXIT HANDLER FOR 1062
BEGIN
SELECT ' Badge already exists' as ERROR ;
END;
INSERT INTO Badge(BadgeID,badgeName,badgeDesc) values
(md5(badgeName),badgeName,badgeDesc);
END$$
DELIMITER ; DELIMITER ;
drop procedure if exists addStudent;
delimiter $$
CREATE PROCEDURE addStudent(
IN fname varchar(35),
IN lname varchar(35),
IN bday date,
IN parentsID varchar(40),
IN passwerd varchar(70))
BEGIN
DECLARE EXIT HANDLER FOR 1062
BEGIN
SELECT 'User already exists' as ERROR ;
END;
INSERT INTO Students(StudentID,fname,lname,bday,parentsID) values
(md5(concat(fname,lname,passwerd)),fname,lname,bday,parentsID);
END$$
DELIMITER ;
call addParent("jeff","Jones","email@realemail.com","veryStrongPassw0rd",02358254);
call addStudent("bobby","jones",'2012-2-11','8e301d6e513165a9c0b6b9a2b10c8305',"EXTRASTRONGPASSWORD");
call addBadge("real badge","this is a totally real badge");
call addStudent("timothy","jones",'2002-2-11','8e301d6e513165a9c0b6b9a2b10c8305',"EXTRASTRONGPASSWORD");
call addVolunteer("jeff","Jones","email@realemail.com","veryStrongPassw0rd",02358254);
call addVolunteer("jeff","Jones","sdkufhsdkfh@wshfksjdfh.com","veryStrongPassw0rd",02358254);
call addVolunteer("jeff","Jones","email@realemfvail.com","veryStrongPassw0rd",02358254);
call addVolunteer("jeff","Jones","esmail@realemail.com","veryStrongPassw0rd",02358254);
select * from volunteers; select * from badge;
\ No newline at end of file -- select * from parents;``
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment