-- Table for Address Code
CREATE TABLE AddressCode (
address_code_ID INT PRIMARY KEY,
ZIP_code VARCHAR(10),
suburb VARCHAR(50),
city VARCHAR(50),
state VARCHAR(50)
);
-- Table for Address
CREATE TABLE Address (
address_ID INT PRIMARY KEY,
street_address VARCHAR(100),
address_code_ID INT,
FOREIGN KEY (address_code_ID) REFERENCES AddressCode(address_code_ID)
);
-- Table for Student
CREATE TABLE Student (
student_ID INT PRIMARY KEY,
course_ID INT,
student_name VARCHAR(100),
fees_paid DECIMAL(10, 2),
date_of_birth DATE,
FOREIGN KEY (course_ID) REFERENCES Course(course_ID)
);
-- Table for Course
CREATE TABLE Course (
course_ID INT PRIMARY KEY,
teacher_ID INT,
course_name VARCHAR(100),
FOREIGN KEY (teacher_ID) REFERENCES Teacher(teacher_ID)
);
-- Table for Teacher
CREATE TABLE Teacher (
teacher_ID INT PRIMARY KEY,
teacher_name VARCHAR(100)
);
-- Table for Subject
CREATE TABLE Subject (
subject_ID INT PRIMARY KEY,
subject_name VARCHAR(100)
);
-- Table for Subject Enrollment
CREATE TABLE SubjectEnrollment (
subject_ID INT,
student_ID INT,
PRIMARY KEY (subject_ID, student_ID),
FOREIGN KEY (subject_ID) REFERENCES Subject(subject_ID),
FOREIGN KEY (student_ID) REFERENCES Student(student_ID)
);
-- Table for Student Address
CREATE TABLE StudentAddress (
student_ID INT,
address_ID INT,
PRIMARY KEY (student_ID, address_ID),
FOREIGN KEY (student_ID) REFERENCES Student(student_ID),
FOREIGN KEY (address_ID) REFERENCES Address(address_ID)
);
-- Table for Teacher Address
CREATE TABLE TeacherAddress (
teacher_ID INT,
address_ID INT,
PRIMARY KEY (teacher_ID, address_ID),
FOREIGN KEY (teacher_ID) REFERENCES Teacher(teacher_ID),
FOREIGN KEY (address_ID) REFERENCES Address(address_ID)
);