Base Scriipts

download Base Scriipts

If you can't read please download the document

description

works 2

Transcript of Base Scriipts

CREATE TABLE countries(entry BIGINT,stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,country_ID VARCHAR(100) NOT NULL,country VARCHAR(100) NOT NULL,PRIMARY KEY (country_ID));CREATE TABLE regions(entry BIGINT,stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,region_ID VARCHAR(100) NOT NULL,region VARCHAR(100) NOT NULL,PRIMARY KEY (region_ID));CREATE TABLE districts(entry BIGINT,stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,district_ID VARCHAR(100) NOT NULL,district VARCHAR(100) NOT NULL,PRIMARY KEY (district_ID));CREATE TABLE counties(entry BIGINT,stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,county_ID VARCHAR(100) NOT NULL,county VARCHAR(100) NOT NULL,PRIMARY KEY (county_ID));CREATE TABLE subcounties(entry BIGINT,stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,subcounty_ID VARCHAR(100) NOT NULL,subcounty VARCHAR(100) NOT NULL,PRIMARY KEY (subcounty_ID));CREATE TABLE parishes(entry BIGINT,stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,parish_ID VARCHAR(100) NOT NULL,parish VARCHAR(100) NOT NULL,PRIMARY KEY (parish_ID));CREATE TABLE villages(entry BIGINT,stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,village_ID VARCHAR(100) NOT NULL,village VARCHAR(100) NOT NULL,PRIMARY KEY (village_ID));CREATE TABLE languages(entry BIGINT,stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,language_ID VARCHAR(100) NOT NULL,language_name VARCHAR(100) NOT NULL,PRIMARY KEY (language_ID));CREATE TABLE job_titles(entry BIGINT,stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, title_ID VARCHAR(100) NOT NULL, description VARCHAR(255),PRIMARY KEY (title_ID));CREATE TABLE religions(entry BIGINT,stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,religion_ID VARCHAR(100) NOT NULL,religion VARCHAR(100) NOT NULL,PRIMARY KEY (religion_ID));CREATE TABLE occupations(entry BIGINT,stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,occupation_ID VARCHAR(100) NOT NULL,occupation VARCHAR(255) NOT NULL,PRIMARY KEY (occupation_ID));CREATE TABLE titles(entry BIGINT,stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,title_ID VARCHAR(100) NOT NULL,title VARCHAR(100) NOT NULL,PRIMARY KEY (title_ID));CREATE TABLE sms_school_houses(entry BIGINT,stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,house_ID VARCHAR(100) NOT NULL,house VARCHAR(100) NOT NULL,PRIMARY KEY (house_ID));CREATE TABLE sms_departments(entry BIGINT,stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,department_ID VARCHAR(100) NOT NULL,department VARCHAR(255),username VARCHAR(100) NOT NULL,PRIMARY KEY (department_ID) );CREATE TABLE sms_classes( entry BIGINT,stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,class_ID VARCHAR(100) NOT NULL,description VARCHAR(255) NOT NULL,username VARCHAR(100) NOT NULL,PRIMARY KEY (class_ID));CREATE TABLE sms_subjects(entry BIGINT,stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,subject_ID VARCHAR(100) NOT NULL,subject VARCHAR(255),username VARCHAR(100) NOT NULL,PRIMARY KEY (subject_ID));CREATE TABLE sms_parents(entry BIGINT,stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,parent_ID VARCHAR(100) NOT NULL,title_ID_1 VARCHAR(100) NOT NULL,parent_name_1 VARCHAR(255) NOT NULL,gender_male_bool_1 SMALLINT,country_1 VARCHAR(100),region_1 VARCHAR(100),county_1 VARCHAR(100),subcounty_1 VARCHAR(100),district_1 VARCHAR(100),parish_1 VARCHAR(100),village_1 VARCHAR(100),religion_1 VARCHAR(100),language_name_1 VARCHAR(100) NOT NULL, picture_file_link_1 VARCHAR(255), occupation_1 VARCHAR(255),title_ID_2 VARCHAR(100) NOT NULL,parent_name_2 VARCHAR(255) NOT NULL,gender_male_bool_2 SMALLINT,country_2 VARCHAR(100),region_2 VARCHAR(100),county_2 VARCHAR(100),subcounty_2 VARCHAR(100),district_2 VARCHAR(100),parish_2 VARCHAR(100),village_2 VARCHAR(100),religion_2 VARCHAR(100),language_name_2 VARCHAR(100) NOT NULL, picture_file_link_2 VARCHAR(255), occupation_2 VARCHAR(255),username VARCHAR(100) NOT NULL,info_1 VARCHAR(255),info_2 VARCHAR(255),info_3 VARCHAR(255),info_4 VARCHAR(255),info_5 VARCHAR(255),info_6 VARCHAR(255), FOREIGN KEY (title_ID_1) REFERENCES titles(title_ID)ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY (country_1) REFERENCES countries(country_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (region_1) REFERENCES regions(region_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (county_1) REFERENCES counties(county_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (subcounty_1) REFERENCES subcounties(subcounty_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (district_1) REFERENCES districts(district_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (parish_1) REFERENCES parishes(parish_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (village_1) REFERENCES villages(village_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (language_name_1) REFERENCES languages(language_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (religion_1) REFERENCES religions(religion_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (occupation_1) REFERENCES occupations(occupation_ID)ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY (title_ID_2) REFERENCES titles(title_ID)ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY (country_2) REFERENCES countries(country_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (region_2) REFERENCES regions(region_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (county_2) REFERENCES counties(county_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (subcounty_2) REFERENCES subcounties(subcounty_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (district_2) REFERENCES districts(district_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (parish_2) REFERENCES parishes(parish_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (village_2) REFERENCES villages(village_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (language_name_2) REFERENCES languages(language_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (religion_2) REFERENCES religions(religion_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (occupation_2) REFERENCES occupations(occupation_ID)ON UPDATE CASCADE ON DELETE CASCADE,PRIMARY KEY (parent_ID));CREATE TABLE sms_students(entry BIGINT,stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,student_name VARCHAR(100) NOT NULL,student_ID VARCHAR(100) NOT NULL,school_house VARCHAR(100),parent_name VARCHAR(100),admission_date VARCHAR(50), country VARCHAR(100) NOT NULL,county VARCHAR(100),region VARCHAR(100),subcounty VARCHAR(100),district VARCHAR(100),parish VARCHAR(100),village VARCHAR(100), gender_male_bool SMALLINT, birth_date VARCHAR(100), birth_place VARCHAR(255), age_value SMALLINT, religion VARCHAR(100), picture_file_link VARCHAR(255), language_name VARCHAR(100), isresIDent_bool SMALLINT DEFAULT 1,isnational_bool SMALLINT DEFAULT 1,info_1 VARCHAR(255),info_2 VARCHAR(255),info_3 VARCHAR(255),info_4 VARCHAR(255),info_5 VARCHAR(255),info_6 VARCHAR(255),info_7 VARCHAR(255),info_8 VARCHAR(255),info_9 VARCHAR(255),info_10 VARCHAR(255),info_11 VARCHAR(255),info_12 VARCHAR(255),info_13 VARCHAR(255),info_14 VARCHAR(255),info_15 VARCHAR(255),username VARCHAR(100) NOT NULL,FOREIGN KEY (country) REFERENCES countries(country_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (region) REFERENCES regions(region_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (county) REFERENCES counties(county_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (subcounty) REFERENCES subcounties(subcounty_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (district) REFERENCES districts(district_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (parish) REFERENCES parishes(parish_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (village) REFERENCES villages(village_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (language_name) REFERENCES languages(language_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (religion) REFERENCES religions(religion_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (parent_name) REFERENCES sms_parents(parent_ID) ON UPDATE CASCADE ON DELETE SET NULL,FOREIGN KEY (school_house) REFERENCES sms_school_houses(house_ID) ON UPDATE CASCADE ON DELETE SET NULL,PRIMARY KEY (student_ID));CREATE TABLE sms_staff(entry BIGINT,stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, title_ID VARCHAR(100), teaching_bool SMALLINT DEFAULT 1, staff_ID VARCHAR(100) NOT NULL,staff_name VARCHAR(255) NOT NULL,enroll_date VARCHAR(255),school_house VARCHAR(100),country VARCHAR(100) NOT NULL,county VARCHAR(100),region VARCHAR(100),subcounty VARCHAR(100),district VARCHAR(100),parish VARCHAR(100),village VARCHAR(100), gender_male_bool SMALLINT, birth_date VARCHAR(255), birth_place VARCHAR(255), age_value SMALLINT, religion VARCHAR(100), married_bool SMALLINT, picture_file_link VARCHAR(255), language_name VARCHAR(100), profession VARCHAR(255), next_of_kin_name VARCHAR(255),next_of_kin_contact VARCHAR(255), tax_IDentification_no VARCHAR(50), social_security_no VARCHAR(50), medical_insurance_no VARCHAR(50),isresIDent_bool SMALLINT DEFAULT 1,active_bool SMALLINT DEFAULT 1,ispermanent_bool SMALLINT DEFAULT 1,username VARCHAR(100) NOT NULL,info_1 VARCHAR(255),info_2 VARCHAR(255),info_3 VARCHAR(255),info_4 VARCHAR(255),info_5 VARCHAR(255),info_6 VARCHAR(255),info_7 VARCHAR(255),info_8 VARCHAR(255),info_9 VARCHAR(255),info_10 VARCHAR(255),info_11 VARCHAR(255),info_12 VARCHAR(255),info_13 VARCHAR(255),info_14 VARCHAR(255),info_15 VARCHAR(255),FOREIGN KEY (country) REFERENCES countries(country_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (region) REFERENCES regions(region_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (county) REFERENCES counties(county_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (subcounty) REFERENCES subcounties(subcounty_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (district) REFERENCES districts(district_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (parish) REFERENCES parishes(parish_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (village) REFERENCES villages(village_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (language_name) REFERENCES languages(language_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (religion) REFERENCES religions(religion_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (school_house) REFERENCES sms_school_houses(house_ID)ON UPDATE CASCADE ON DELETE CASCADE, PRIMARY KEY (staff_ID));-----------------------------------------------------------------------------------------------------------------------------------CREATE TABLE sms_student_attendances (entry BIGINT,stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,student_ID VARCHAR(100) NOT NULL, class_ID VARCHAR(100) NOT NULL,attendance_date VARCHAR(50),attendance_day VARCHAR(50),is_present_bool SMALLINT DEFAULT 1,username VARCHAR(100) NOT NULL,info_1 VARCHAR(255), info_2 VARCHAR(255), info_3 VARCHAR(255), info_4 VARCHAR(255), info_5 VARCHAR(255), FOREIGN KEY (student_ID) REFERENCES sms_students(student_ID) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY (class_ID) REFERENCES sms_classes(class_ID) ON UPDATE CASCADE ON DELETE CASCADE, PRIMARY KEY (student_ID));CREATE TABLE sms_staff_timesheet(entry BIGINT, staff_ID VARCHAR(100) NOT NULL, timesheet_date VARCHAR(50) NOT NULL, timesheet_time_in TIME NOT NULL, timesheet_time_out TIME, timesheet_hours_time TIME, timesheet_units_value FLOAT CHECK(timesheet_units_value > 0.0), enable_bool SMALLINT default 1, stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, username VARCHAR(100) NOT NULL,info_1 VARCHAR(255), info_2 VARCHAR(255), info_3 VARCHAR(255), info_4 VARCHAR(255), info_5 VARCHAR(255), FOREIGN KEY (staff_ID) REFERENCES sms_staff(staff_ID) ON UPDATE CASCADE ON DELETE CASCADE, PRIMARY KEY (staff_ID) );CREATE TABLE sms_staff_salary_scale(entry BIGINT, salary_scale VARCHAR(50) NOT NULL, amount_value FLOAT NOT NULL CHECK(amount_value > 0.0), stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, username VARCHAR(100) NOT NULL, PRIMARY KEY (salary_scale));CREATE TABLE sms_staff_payroll_items( entry BIGINT, item_ID VARCHAR(100) NOT NULL,item VARCHAR(255), is_salary_bool SMALLINT DEFAULT 0, enable_bool SMALLINT DEFAULT 1, stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, username VARCHAR(100) NOT NULL, PRIMARY KEY (item_ID));CREATE TABLE sms_staff_payroll_templates(entry BIGINT, template_ID VARCHAR(100) NOT NULL,template VARCHAR(255), enable_bool SMALLINT DEFAULT 1, stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, username VARCHAR(100) NOT NULL,PRIMARY KEY (template_ID));CREATE TABLE sms_staff_payroll_periods(entry BIGINT, period_ID VARCHAR(100) NOT NULL, payroll_year_value SMALLINT NOT NULL CHECK (payroll_year_value >= 2001), payroll_month_value SMALLINT NOT NULL CHECK (payroll_month_value >= 1 and payroll_month_value = 0.0), inadvance_bool SMALLINT NOT NULL, paidout_date VARCHAR(50), stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, username VARCHAR(100) NOT NULL,info_1 VARCHAR(255), info_2 VARCHAR(255), info_3 VARCHAR(255), info_4 VARCHAR(255), info_5 VARCHAR(255), FOREIGN KEY (period_ID) REFERENCES sms_staff_payroll_periods(period_ID) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY (staff_ID) REFERENCES sms_staff(staff_ID) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY (template_ID) REFERENCES sms_staff_payroll_templates(template_ID) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY (item_ID) REFERENCES sms_staff_payroll_items(item_ID) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY (salary_scale) REFERENCES sms_staff_salary_scale(salary_scale) ON UPDATE CASCADE ON DELETE CASCADE, UNIQUE (period_ID, template_ID, item_ID, inadvance_bool), PRIMARY KEY (staff_ID));CREATE TABLE sms_hr_termination_categories(entry BIGINT, category_ID VARCHAR(100) NOT NULL, caption VARCHAR(255), stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, username VARCHAR(100) NOT NULL,info_1 VARCHAR(255), info_2 VARCHAR(255), info_3 VARCHAR(255), info_4 VARCHAR(255), info_5 VARCHAR(255), PRIMARY KEY (category_ID));CREATE TABLE sms_hr_terminated_staff(entry BIGINT, category_ID VARCHAR(100) NOT NULL, staff_ID VARCHAR(100) NOT NULL, termination_date VARCHAR(255) NOT NULL, caption VARCHAR(255), stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, username VARCHAR(100) NOT NULL,info_1 VARCHAR(255), info_2 VARCHAR(255), info_3 VARCHAR(255), info_4 VARCHAR(255), info_5 VARCHAR(255), FOREIGN KEY (staff_ID) REFERENCES sms_staff(staff_ID) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY (category_ID) references sms_hr_termination_categories(category_ID) ON UPDATE CASCADE ON DELETE CASCADE, UNIQUE (category_ID, termination_date), PRIMARY KEY (staff_ID));CREATE TABLE sms_hr_terminated_students(entry BIGINT, category_ID VARCHAR(100) NOT NULL, student_ID VARCHAR(100) NOT NULL, termination_date VARCHAR(255) NOT NULL, caption VARCHAR(255), stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, username VARCHAR(100) NOT NULL,info_1 VARCHAR(255), info_2 VARCHAR(255), info_3 VARCHAR(255), info_4 VARCHAR(255), info_5 VARCHAR(255), FOREIGN KEY (student_ID) REFERENCES sms_students(student_ID) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY (category_ID) references sms_hr_termination_categories(category_ID) ON UPDATE CASCADE ON DELETE CASCADE, UNIQUE (category_ID, termination_date), PRIMARY KEY (student_ID));/* changes in employment eq demotions, promotions, re-deployments, etc categories */CREATE TABLE sms_hr_staff_status( entry BIGINT, status_ID VARCHAR(50) NOT NULL, rating_value FLOAT, description VARCHAR(255), stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, username VARCHAR(50) NOT NULL,info_1 VARCHAR(255), info_2 VARCHAR(255), info_3 VARCHAR(255), info_4 VARCHAR(255), info_5 VARCHAR(255), PRIMARY KEY (status_ID));CREATE TABLE sms_hr_staff_status_entries(entry BIGINT, status_ID VARCHAR(50) NOT NOT, staff_ID VARCHAR(50) NOT NULL, status_date VARCHAR NOT NULL, caption VARCHAR(255), stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, username VARCHAR(50) NOT NULL,info_1 VARCHAR(255), info_2 VARCHAR(255), info_3 VARCHAR(255), info_4 VARCHAR(255), info_5 VARCHAR(255), FOREIGN KEY (staff_ID) REFERENCES sms_staff(staff_ID) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY (status_ID) references hr_staff_status(status_ID) on UPDATE CASCADE ON DELETE CASCADE, UNIQUE (status_ID, status_date), PRIMARY KEY (staff_ID));CREATE TABLE sms_hr_staff_leave_categories(entry BIGINT, category_ID VARCHAR(50) NOT NULL, caption VARCHAR(255), stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, username VARCHAR(50) NOT NULL,info_1 VARCHAR(255), info_2 VARCHAR(255), info_3 VARCHAR(255), info_4 VARCHAR(255), info_5 VARCHAR(255), PRIMARY KEY (category_ID));CREATE TABLE sms_hr_staff_leave( entry BIGINT, category_ID VARCHAR(50) NOT NULL, staff_ID VARCHAR(50) not null, leave_date VARCHAR(50) NOT NULL, return_date VARCHAR(50) NOT NULL, leave_days_value SMALLINT, pass_no VARCHAR(50), destination VARCHAR(255), stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, username VARCHAR(50) NOT NULL,info_1 VARCHAR(255), info_2 VARCHAR(255), info_3 VARCHAR(255), info_4 VARCHAR(255), info_5 VARCHAR(255),FOREIGN KEY (staff_ID) REFERENCES sms_staff(staff_ID) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY (category_ID) REFERENCES sms_hr_staff_leave_categories(category_ID) ON UPDATE CASCADE ON DELETE CASCADE, UNIQUE (category_ID,leave_date), PRIMARY KEY (staff_ID));/* courses and training */CREATE TABLE sms_hr_staff_courses( entry BIGINT, department_ID VARCHAR(50) NOT NULL, course_ID VARCHAR(50) NOT NULL, course_name VARCHAR(255), credits_value SMALLINT, /* weighting, etc */stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, username VARCHAR(50) NOT NULL, info_1 VARCHAR(255), info_2 VARCHAR(255), info_3 VARCHAR(255), info_4 VARCHAR(255), info_5 VARCHAR(255), FOREIGN KEY (department_ID) REFERENCES sms_departments(department_ID) ON UPDATE CASCADE ON DELETE CASCADE, PRIMARY KEY (course_ID));/* library manager */CREATE TABLE sms_lib_books (entry BIGINT, book_ID VARCHAR(50) NOT NULL,book_name VARCHAR(50), publication VARCHAR(255), anthor_ID VARCHAR(50), price_value VARCHAR(50),quatity VARCHAR(50),location VARCHAR(50), stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, username VARCHAR(50) NOT NULL,info_1 VARCHAR(255), info_2 VARCHAR(255), info_3 VARCHAR(255), info_4 VARCHAR(255), info_5 VARCHAR(255),UNIQUE (book_name,anthor_ID) PRIMARY KEY (book_ID));CREATE TABLE sms_lib_unreturned_books(entry BIGINT, student_ID VARCHAR(50) NOT NULL, book_ID VARCHAR(50) NOT NULL, issue_date VARCHAR(50) NOT NULL, return_date VARCHAR(50) NOT NULL,info_1 VARCHAR(255), info_2 VARCHAR(255), info_3 VARCHAR(255), info_4 VARCHAR(255), info_5 VARCHAR(255),stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, username VARCHAR(50) NOT NULL,FOREIGN KEY (book_ID) REFERENCES sms_lib_books(book_ID)ON UPDATE CASCADE ON DELETE CASCADE, UNIQUE (book_ID,issue_date,return_date), PRIMARY KEY (student_ID) );CREATE TABLE sms_lib_issue_books_students(entry BIGINT,student_ID VARCHAR(50) NOT NULL, book_ID VARCHAR(50) NOT NULL, issue_date VARCHAR(50) NOT NULL, return_date VARCHAR(50) NOT NULL,return_status_bool SMALLINT DEFAULT 0,/* a yes or no for either the books are returned or not*/info_1 VARCHAR(255), info_2 VARCHAR(255), info_3 VARCHAR(255), info_4 VARCHAR(255), info_5 VARCHAR(255),stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, username VARCHAR(50) NOT NULL,FOREIGN KEY (book_ID) REFERENCES sms_lib_books(book_ID) ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (student_ID) REFERENCES sms_student(student_ID) ON UPDATE CASCADE ON DELETE CASCADE,PRIMARY KEY (student_ID));CREATE TABLE sms_lib_issue_books_staff(entry BIGINT,staff_ID VARCHAR(50) NOT NULL, book_ID VARCHAR(50) NOT NULL, issue_date VARCHAR(50) NOT NULL, return_date VARCHAR(50) NOT NULL,info_1 VARCHAR(255), info_2 VARCHAR(255), info_3 VARCHAR(255), info_4 VARCHAR(255), info_5 VARCHAR(255),return_status_bool SMALLINT DEFAULT 0,/* a yes or no for either the books are returned or not*/stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, username VARCHAR(50) NOT NULL,FOREIGN KEY (staff_ID) REFERENCES sms_staff(staff_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (book_ID) REFERENCES sms_lib_books(book_ID) ON UPDATE CASCADE ON DELETE CASCADE, UNIQUE (book_ID,issue_date,return_date),PRIMARY KEY (staff_ID));CREATE TABLE sms_lib_unreturned_book_reminder_staff(entry BIGINT,staff_ID VARCHAR(50) NOT NULL, book_ID VARCHAR(50) NOT NULL, issue_date VARCHAR(50) NOT NULL, return_date VARCHAR(50) NOT NULL,info_1 VARCHAR(255), info_2 VARCHAR(255), info_3 VARCHAR(255), info_4 VARCHAR(255), info_5 VARCHAR(255),stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, username VARCHAR(50) NOT NULL,FOREIGN KEY (staff_ID) REFERENCES sms_staff(staff_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (book_ID) REFERENCES sms_lib_books(book_ID) ON UPDATE CASCADE ON DELETE CASCADE,UNIQUE (book_ID,issue_date,return_date), PRIMARY KEY (staff_ID));CREATE TABLE sms_lib_unreturned_book_reminder_student(entry BIGINT,student_ID VARCHAR(50) NOT NULL, book_ID VARCHAR(50) NOT NULL, issue_date VARCHAR(50) NOT NULL, return_date VARCHAR(50) NOT NULL,info_1 VARCHAR(255), info_2 VARCHAR(255), info_3 VARCHAR(255), info_4 VARCHAR(255), info_5 VARCHAR(255),stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, username VARCHAR(50) NOT NULL,FOREIGN KEY (book_ID) REFERENCES sms_lib_books(book_ID) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY (student_ID) REFERENCES sms_student(student_ID)ON UPDATE CASCADE ON DELETE CASCADE,UNIQUE (book_ID,issue_date,return_date),PRIMARY KEY (student_ID));CREATE TABLE sms_class_rooms(entry BIGINT,room_ID VARCHAR(100) NOT NULL,description VARCHAR(255),stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, username VARCHAR(100) NOT NULL,PRIMARY KEY (room_ID));CREATE TABLE sms_exams_timetable(entry BIGINT,supervisor VARCHAR(50) NOT NULL,exam_ID VARCHAR(255) NOT NULL,/* exam name*/class_ID VARCHAR(50) NOT NULL,room_ID VARCHAR(50),start_date VARCHAR(50) NOT NULL,end_date VARCHAR(50),info_1 VARCHAR(255), info_2 VARCHAR(255), info_3 VARCHAR(255), info_4 VARCHAR(255), info_5 VARCHAR(255),stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, username VARCHAR(50) NOT NULL,FOREIGN KEY (supervisor) REFERENCES sms_staff(staff_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (class_ID) REFERENCES sms_classes(class_ID) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY (room_ID) REFERENCES sms_class_rooms(room_ID) ON UPDATE CASCADE ON DELETE CASCADE, UNIQUE (class_ID,room_ID,start_date)PRIMARY KEY (exam_ID));CREATE TABLE sms_exam_categories(exam_category_ID VARCHAR(50) NOT NULL,stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, username VARCHAR(50) NOT NULL,PRIMARY KEY (exam_category_ID));CREATE TABLE sms_exam_marks(entry BIGINT,exam_category_ID VARCHAR(50) NOT NULL,/* EITHER TESTS OR END OF TERM EXAMS*/class_ID VARCHAR(50) NOT NULL,/*CLASS FOR THAT SPECIFIC STUDENT*/student_ID VARCHAR(50) NOT NULL,staff_ID VARCHAR(50) NOT NULL,subject_1_mak_value VARCHAR(50),subject_2_mak_value VARCHAR(50),subject_3_mak_value VARCHAR(50),subject_4_mak_value VARCHAR(50),subject_5_mak_value VARCHAR(50),subject_6_mak_value VARCHAR(50),subject_7_mak_value VARCHAR(50),subject_8_mak_value VARCHAR(50),subject_9_mak_value VARCHAR(50),subject_10_mak_value VARCHAR(50),subject_11_mak_value VARCHAR(50),subject_12_mak_value VARCHAR(50),subject_13_mak_value VARCHAR(50),subject_14_mak_value VARCHAR(50),subject_15_mak_value VARCHAR(50),subject_16_mak_value VARCHAR(50),subject_17_mak_value VARCHAR(50),subject_18_mak_value VARCHAR(50), subject_18_mak_value VARCHAR(50), subject_19_mak_value VARCHAR(50), subject_20_mak_value VARCHAR(50), total_mak_value VARCHAR(50),average_mak_value VARCHAR(50),info_1 VARCHAR(255), info_2 VARCHAR(255), info_3 VARCHAR(255), info_4 VARCHAR(255), info_5 VARCHAR(255),stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, username VARCHAR(50) NOT NULL,FOREIGN KEY (staff_ID) REFERENCES sms_staff(staff_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (class_ID) REFERENCES sms_classes(class_ID) ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (student_ID) REFERENCES sms_student(student_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (exam_category_ID) REFERENCES sms_exam_categories(exam_category_ID)ON UPDATE CASCADE ON DELETE CASCADE,PRIMARY KEY (student_ID));/* EVENT management MODULES*/CREATE TABLE sms_events(entry BIGINT,event_ID VARCHAR(50) NOT NULL,event_name VARCHAR(255) NOT NULL,/*SPORT WEEK*/description VARCHAR(255),start_date VARCHAR(50) NOT NULL,end_date VARCHAR(50),info_1 VARCHAR(255), info_2 VARCHAR(255), info_3 VARCHAR(255), info_4 VARCHAR(255), info_5 VARCHAR(255),stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, username VARCHAR(50) NOT NULL,UNIQUE (event_name,start_date),PRIMARY KEY (event_ID));CREATE TABLE sms_school_fees_categories(entry BIGINT,category_ID VARCHAR(50) NOT NULL,stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, username VARCHAR(50) NOT NULL,PRIMARY KEY (category_ID));CREATE TABLE sms_school_fees_entries(entry BIGINT,fee_category_ID VARCHAR(50) NOT NULL,student_ID VARCHAR(50) NOT NULL,class_ID VARCHAR(50) NOT NULL,fees_year_value VARCHAR(50) NOT NULL/* USING A DATE PICKER FORMART*/term_ID VARCHAR(50) NOT NULL,/* e.g term 11 */fees_entry_1_value VARCHAR(50) DEFAULT 0.0,fees_entry_2_value VARCHAR(50),fees_entry_3_value VARCHAR(50),fees_entry_4_value VARCHAR(50),fees_entry_5_value VARCHAR(50),total_fees_PaID_value VARCHAR(50) NOT NULL DEFAULT 0.0,balance_value VARCHAR(50) NOT NULL DEFAULT 0.0,info_1 VARCHAR(255), info_2 VARCHAR(255), info_3 VARCHAR(255), info_4 VARCHAR(255), info_5 VARCHAR(255),stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, username VARCHAR(50) NOT NULL,FOREIGN KEY (class_ID) REFERENCES sms_classes(class_ID) ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (student_ID) REFERENCES sms_student(student_ID)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (fees_category_ID) REFERENCES sms_school_fees_categories(category_ID)ON UPDATE CASCADE ON DELETE CASCADE,UNIQUE (fee_category_ID,class_ID,term_ID)PRIMARY KEY (student_ID));/*ASSET/STORE Management*/CREATE TABLE sms_asset_categories(entry BIGINT,category_ID VARCHAR(50) NOT NULL,description VARCHAR(255),stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, username VARCHAR(50) NOT NULL,PRIMARY KEY (category_ID,));CREATE TABLE sms_stores(entry BIGINT,store_name VARCHAR(50) NOT NULL,stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, username VARCHAR(50) NOT NULL,PRIMARY KEY (store_name));CREATE TABLE sms_asset_entries(entry BIGINT,asset_category_ID VARCHAR(50) NOT NULL,store_name VARCHAR(50) NOT NULL,asset_name VARCHAR(50) NOT NULL,asset_ID VARCHAR(50) NOT NULL, quantity_value BIGINT NOT NULL,deprication_rate_value VARCHAR(50),info_1 VARCHAR(255),info_2 VARCHAR(255),info_3 VARCHAR(255),info_4 VARCHAR(255),info_5 VARCHAR(255),info_6 VARCHAR(255),info_7 VARCHAR(255),info_8 VARCHAR(255),info_9 VARCHAR(255),info_10 VARCHAR(255),stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, username VARCHAR(50) NOT NULL,FOREIGN KEY (store_name) REFERENCES sms_stores(store_name)ON UPDATE CASCADE ON DELETE CASCADE,PRIMARY KEY (asset_ID));CREATE TABLE sms_physical_store_tracking_staff( entry BIGINT, store_ID VARCHAR(50) NOT NULL, staff_ID VARCHAR(50) NOT NULL, -- who has taken the file? taken_date VARCHAR(50) not null, return_date VARCHAR(50), reason VARCHAR(255), -- why take out the file?info_1 VARCHAR(255),info_2 VARCHAR(255),info_3 VARCHAR(255),info_4 VARCHAR(255),info_5 VARCHAR(255),stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, username VARCHAR(50) NOT NULL,FOREIGN KEY (store_name) REFERENCES sms_stores(store_name)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (staff_ID) REFERENCES sms_staff(staff_ID)ON UPDATE CASCADE ON DELETE CASCADE,PRIMARY KEY (store_ID));CREATE TABLE sms_physical_store_tracking_staff( entry BIGINT, store_ID VARCHAR(50) NOT NULL, staff_ID VARCHAR(50) NOT NULL, -- who has taken the file? taken_date VARCHAR(50) not null, return_date VARCHAR(50), reason VARCHAR(255), -- why take out the file?info_1 VARCHAR(255),info_2 VARCHAR(255),info_3 VARCHAR(255),info_4 VARCHAR(255),info_5 VARCHAR(255),stamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, username VARCHAR(50) NOT NULL,FOREIGN KEY (store_name) REFERENCES sms_stores(store_name)ON UPDATE CASCADE ON DELETE CASCADE,FOREIGN KEY (staff_ID) REFERENCES sms_staff(staff_ID)ON UPDATE CASCADE ON DELETE CASCADE,PRIMARY KEY (store_ID));