作为MySQL数据库的多级互联学校时间表

Mr.*_*ers 2 php mysql timetable data-structures

我现在已经看了一下其他与此有关的建议,但我见过的任何东西都不太适合我的需求,所以这里有!

我所拥有的是一个多班(澳大利亚中学; 7 - 12年级),多日(周一至周五)学校的时间表.我现在想要构建的是一个MySQL数据库,其中包含要在帐户驱动的网站上部署的以下信息.

  • 主题:
    • 运行时间(如"星期三的1期","星期五的2期"等 - 本栏中的多个值)
    • 教师(与所有教师的单独数据库相关联) - 如果教师生病和更换,这还需要(暂时)改变; 也许是一个在"NULL"时被忽略的"replacementinstructor"列.
    • 位置(不同,但具体分配,不同日期的房间) - 如上所述,在房间改变时暂时更改.
    • 其他显而易见性:课程名称("7年级健康"),唯一ID(类似"7.HEALTH",而不仅仅是自动递增INT.)等.
  • 老师:
    • 名字,姓氏
    • 他们采取的课程
    • 联系信息
    • 其他显而易见性:唯一ID(自动递增INT),用户名(fname.lname),帐户密码等.
  • 学生们:
    • 名字,姓氏
    • 他们参加的课程(存储为每个学生的个人名单)
    • 年级/表格(7年级,11年级等)
    • 基本的个人信息(家庭郊区,电子邮件等)
    • 更明显:唯一ID(与教师相同的设置),用户名(与教师相同),密码等.

任何关于我如何设计这样一个数据结构的见解都将非常感激,我更像是一个UI狂热者而不是MySQL思想家;-D

提前致谢.

Ben*_*Ben 7

我可以想到在MySQL中使用以下表格:

学生
学生信息

  • id(auto_increment)
  • 名字
  • 用户名
  • 密码
  • student_id(我有一个学生证,但我不记得我是否在7岁或10岁时给了我这个)
  • 电子邮件
  • 联系电话
  • 市郊
  • 州(ENUM - ACT,NSW,WA,SA,TAS,VIC,NT,QLD)

老师
老师的信息

  • id(auto_increment)
  • 名字
  • 标题(博士,夫人等)
  • 用户名
  • 密码
  • 电子邮件
  • 联系电话
  • 市郊
  • 州(ENUM - ACT,NSW,WA,SA,TAS,VIC,NT,QLD)

科目
所有不同的科目

  • id(auto_increment)
  • 学科
  • subject_code(例如7.HEALTH)

地点
学校周围的各个地方

  • id(auto_increment)
  • 位置(例如街区A,房间2,音乐室)

subject_teachers
每位老师教授的科目

  • id(auto_increment)
  • subject_id
  • teacher_id

subject_students
每个学生参加哪些科目

  • id(auto_increment)
  • subject_id
  • 学生卡

subject_timetable
主要时间表

  • id(auto_increment)
  • subject_id
  • LOCATION_ID
  • teacher_id
  • alt_teacher_id(例如代课老师)
  • 持续时间
  • 期间(数字1 - 一天中的多个时段.如果我没记错的话,则为6)
  • 一周(1-2号甚至1-52号)
  • 工作日(1-5号)
  • 备注(正如@Oswald建议您可以在事情发生变化时添加其他注释)

可以对这些注释进行整理,然后在时间表上显示为脚注.