我正在尝试建立一个学生可以登录并管理与学校有关的东西的系统。信息(针对我的学校项目)。这是我系统中每个角色应具备的能力。
学生: 查看老师设定的自己的作业 查看他们的成绩,由他们的老师再次输入 查看考试时间表,该时间表将是pdf文件(每年一个),由管理员输入 查看由管理员(按年份分组)输入的旅行和事件
老师: 添加/编辑/删除他们班级的作业 为每个学生添加成绩
管理员: 管理用户(添加/删除/编辑)和角色 为每个年度组添加考试时间表 添加每个年度组的旅行和事件
但是,我正在努力或不理解。首先,我不了解我的用户表(具有ID,用户名,密码和角色)如何链接到包含有关学生和教师信息的表。另一件事是,我上面需要听的所有东西都需要一张桌子吗? (如时间表,行程等),以及是否需要管理表。
这是我的数据库:
-表mydb
。users
如果不存在mydb
。users
创建表({
id
INT NOT NULL AUTO_INCREMENT,
username
VARCHAR(45)NULL,
password
VARCHAR(45)NULL,
roles_id
INT NOT NULL,
主键(id
),
索引fk_users_roles_idx
(roles_id
ASC),
唯一索引username_UNIQUE
(username
ASC),
约束fk_users_roles
外键(roles_id
)
参考文献mydb
。roles
(id
)
-表mydb
。roles
如果不存在mydb
。roles
创建表({
id
INT NOT NULL AUTO_INCREMENT,
role_name
VARCHAR(10)NULL,
``VARCHAR(45)NULL,
主键(id
),
唯一索引role_name_UNIQUE
(role_name
ASC))
-表mydb
。student
如果不存在mydb
。student
创建表({
id
INT NOT NULL AUTO_INCREMENT,
name
VARCHAR(45)NULL,
surname
VARCHAR(45)NULL,
dob
日期为空,
yeargroup_id
INT NOT NULL,
主键(id
),
索引fk_student_yeargroup1_idx
(yeargroup_id
ASC),
约束fk_student_yeargroup1
外键(yeargroup_id
)
参考文献mydb
。yeargroup
(id
)
-表mydb
。teacher
如果不存在mydb
。teacher
创建表({
id
INT NOT NULL,
name
VARCHAR(45)NULL,
surname
VARCHAR(45)NULL,
dob
VARCHAR(45)NULL,
subject_id
INT NOT NULL,
主键(id
),
索引fk_teacher_subject1_idx
(subject_id
ASC),
约束fk_teacher_subject1
外键(subject_id
)
参考文献mydb
。subject
(id
)
-表mydb
。admin
如果不存在mydb
。admin
创建表({
id
INT NOT NULL,
name
VARCHAR(45)NULL,
surname
VARCHAR(45)NULL,
dob
VARCHAR(45)NULL,
主键(id
)
-表mydb
。yeargroup
如果不存在mydb
。yeargroup
创建表({
id
INT NOT NULL AUTO_INCREMENT,
description
VARCHAR(100)NULL,
主键(id
)
-表mydb
。subject
如果不存在mydb
。subject
创建表({
id
INT NOT NULL,
description
VARCHAR(45)NULL,
主键(id
)
引擎= InnoDB;
-表mydb
。student_class
如果不存在mydb
。student_class
创建表({
student_id
INT NOT NULL,
class_id
INT NOT NULL,
主键(student_id
,class_id
),
索引fk_student_has_class_class1_idx
(class_id
ASC),
索引fk_student_has_class_student1_idx
(student_id
ASC),
约束fk_student_has_class_student1
外键(student_id
)
参考mydb
。student
(id
)
约束fk_student_has_class_class1
外键(class_id
)
参考文献mydb
。class
(id
)
-表mydb
。class
如果不存在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,
主键(id
),
索引fk_class_teacher1_idx
(teacher_id
ASC),
索引fk_class_yeargroup1_idx
(yeargroup_id
ASC),
索引fk_class_subject1_idx
(subject_id
ASC),
约束fk_class_teacher1
外键(teacher_id
)
参考mydb
。teacher
(id
)
约束fk_class_yeargroup1
外键(yeargroup_id
)
参考mydb
。yeargroup
(id
)
约束fk_class_subject1
外键(subject_id
)
参考文献mydb
。subject
(id
)