学校门户网站数据库

时间:2019-12-27 00:06:17

标签: mysql sql database

我正在尝试建立一个学生可以登录并管理与学校有关的东西的系统。信息(针对我的学校项目)。这是我系统中每个角色应具备的能力。

学生:

  
      
  • 查看老师自己设置的作业
  •   
  • 查看他们的成绩,再次由他们的老师输入
  •   
  • 查看考试时间表,该时间表将是管理员输入的pdf文件(每年一次)
  •   
  • 按管理员(按年份分组)查看旅行和事件
  •   

老师:

  
      
  • 添加/编辑/删除他们班级的作业
  •   
  • 为每个学生添加成绩
  •   

管理员:

  
      
  • 管理用户(添加/删除/编辑)和角色
  •   
  • 为每个年度组添加考试时间表
  •   
  • 为每个年度组添加旅行和事件
  •   

但是,我正在努力或不理解。首先,我不了解我的用户表(具有ID,用户名,密码和角色)如何链接到包含有关学生和教师信息的表。

另一件事是,我上面需要听的所有东西都需要一张桌子吗? (如时间表,行程等),以及是否需要管理表。

任何一般性建议也将不胜感激。

这是我的数据库:

-- Table mydb.users

CREATE TABLE IF NOT EXISTS mydb.users ( id INT NOT NULL AUTO_INCREMENT, username VARCHAR(45) NULL, password VARCHAR(45) NULL, roles_id INT NOT NULL, PRIMARY KEY (id), INDEX fk_users_roles_idx (roles_id ASC), UNIQUE INDEX username_UNIQUE (username ASC), CONSTRAINT fk_users_roles FOREIGN KEY (roles_id) REFERENCES mydb.roles (id)

-- Table mydb.roles

CREATE TABLE IF NOT EXISTS mydb.roles ( id INT NOT NULL AUTO_INCREMENT, role_name VARCHAR(10) NULL, `` VARCHAR(45) NULL, PRIMARY KEY (id), UNIQUE INDEX role_name_UNIQUE (role_name ASC))

-- Table mydb.student

CREATE TABLE IF NOT EXISTS mydb.student ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(45) NULL, surname VARCHAR(45) NULL, dob DATE NULL, yeargroup_id INT NOT NULL, PRIMARY KEY (id), INDEX fk_student_yeargroup1_idx (yeargroup_id ASC), CONSTRAINT fk_student_yeargroup1 FOREIGN KEY (yeargroup_id) REFERENCES mydb.yeargroup (id)

-- Table mydb.teacher

CREATE TABLE IF NOT EXISTS mydb.teacher ( id INT NOT NULL, name VARCHAR(45) NULL, surname VARCHAR(45) NULL, dob VARCHAR(45) NULL, subject_id INT NOT NULL, PRIMARY KEY (id), INDEX fk_teacher_subject1_idx (subject_id ASC), CONSTRAINT fk_teacher_subject1 FOREIGN KEY (subject_id) REFERENCES mydb.subject (id)

-- Table mydb.admin

CREATE TABLE IF NOT EXISTS mydb.admin ( id INT NOT NULL, name VARCHAR(45) NULL, surname VARCHAR(45) NULL, dob VARCHAR(45) NULL, PRIMARY KEY (id))

-- Table mydb.yeargroup

CREATE TABLE IF NOT EXISTS mydb.yeargroup ( id INT NOT NULL AUTO_INCREMENT, description VARCHAR(100) NULL, PRIMARY KEY (id))

-- Table mydb.subject

CREATE TABLE IF NOT EXISTS mydb.subject ( id INT NOT NULL, description VARCHAR(45) NULL, PRIMARY KEY (id)) ENGINE = InnoDB;

-- Table mydb.student_class

CREATE TABLE IF NOT EXISTS mydb.student_class ( student_id INT NOT NULL, class_id INT NOT NULL, PRIMARY KEY (student_id, class_id), INDEX fk_student_has_class_class1_idx (class_id ASC), INDEX fk_student_has_class_student1_idx (student_id ASC), CONSTRAINT fk_student_has_class_student1 FOREIGN KEY (student_id) REFERENCES mydb.student (id) CONSTRAINT fk_student_has_class_class1 FOREIGN KEY (class_id) REFERENCES mydb.class (id)

-- Table mydb.class

CREATE TABLE IF NOT EXISTS mydb.class ( id INT NOT NULL AUTO_INCREMENT, classtime DATETIME NULL, teacher_id INT NOT NULL, yeargroup_id INT NOT NULL, subject_id INT NOT NULL, PRIMARY KEY (id), INDEX fk_class_teacher1_idx (teacher_id ASC), INDEX fk_class_yeargroup1_idx (yeargroup_id ASC), INDEX fk_class_subject1_idx (subject_id ASC), CONSTRAINT fk_class_teacher1 FOREIGN KEY (teacher_id) REFERENCES mydb.teacher (id) CONSTRAINT fk_class_yeargroup1 FOREIGN KEY (yeargroup_id) REFERENCES mydb.yeargroup (id) CONSTRAINT fk_class_subject1 FOREIGN KEY (subject_id) REFERENCES mydb.subject (id)

datababe

0 个答案:

没有答案