Php 创建学校关系数据库的步骤是什么?

Php 创建学校关系数据库的步骤是什么?,php,mysql,relational-database,Php,Mysql,Relational Database,一所学校有许多科目:科目1、科目2、科目3等,许多学生选修一个或多个科目,还有老师。每个老师只教一门课 现在我被要求为学校建立一个网站。但我不擅长关系数据库,我知道如何连接表,但我被要创建的表以及要创建多少表所困扰。我知道会有一个学生、老师和一张班级表格,上面有他们的id、姓名等 但我的方法是什么,以便我可以访问所有数据?我正在使用PHP和MySQL。这取决于您需要什么,但您可以这样做: subject: id, name student: id, firstname, lastname t

一所学校有许多科目:科目1、科目2、科目3等,许多学生选修一个或多个科目,还有老师。每个老师只教一门课

现在我被要求为学校建立一个网站。但我不擅长关系数据库,我知道如何连接表,但我被要创建的表以及要创建多少表所困扰。我知道会有一个学生、老师和一张班级表格,上面有他们的id、姓名等


但我的方法是什么,以便我可以访问所有数据?我正在使用PHP和MySQL。

这取决于您需要什么,但您可以这样做:

subject: id, name

student: id, firstname, lastname

teacher: id, firstname, lastname

rel_subject : id_subject, id_people, type_people
如果你需要计划时间表

class: id, id_subject, time, place

这实际上取决于你需要什么,但你可以这样做:

subject: id, name

student: id, firstname, lastname

teacher: id, firstname, lastname

rel_subject : id_subject, id_people, type_people
如果你需要计划时间表

class: id, id_subject, time, place

您可以从以下简单设计开始:

学生:id、姓名

教师:id、姓名

主题:id、名称

班级:id、科目id、教师id

注册:id、班级id、学生id

这假定:

  • 任何老师都可以教任何科目
  • 教师可以在多个班级授课
  • 一个学生可以注册多个班级
  • 没有像“学期”这样的概念。这将影响表
  • 你可能(但我不确定)不想让一个学生注册同一科目的两个不同班级。您可以使用PHP(查询学生是否已注册到具有所请求主题的类)或SQL触发器来控制这一点。您可以尝试调整此设计,以禁止模式中的组合

    最后,这里还有许多其他的考虑因素没有考虑。例如,教师可以来来往往,也可以随时待命。有些科目通常要求在注册前通过其他科目,等等


    这只是一个简单的开始方式。

    您可以从这个简单的设计开始:

    学生:id、姓名

    教师:id、姓名

    主题:id、名称

    班级:id、科目id、教师id

    注册:id、班级id、学生id

    这假定:

  • 任何老师都可以教任何科目
  • 教师可以在多个班级授课
  • 一个学生可以注册多个班级
  • 没有像“学期”这样的概念。这将影响表
  • 你可能(但我不确定)不想让一个学生注册同一科目的两个不同班级。您可以使用PHP(查询学生是否已注册到具有所请求主题的类)或SQL触发器来控制这一点。您可以尝试调整此设计,以禁止模式中的组合

    最后,这里还有许多其他的考虑因素没有考虑。例如,教师可以来来往往,也可以随时待命。有些科目通常要求在注册前通过其他科目,等等


    这只是一个简单的开始。

    根据Thomas的回答,关键是决定(a)系统中的实体(学科、学生、教师等)和(b)关系(1:1、1:多、多:多)。(顺便说一句,内容广泛且不包含事先尝试的问题可能会被搁置,因为这是一个离题的问题——当你有时间的时候,值得一读帮助部分)。我试图找到,但我想要一个清晰的结构作为要做的事情,一旦我得到一张图片,想法就会清晰,但是关系数据库的主题太详细了,我不得不为快速易懂的步骤发帖。不幸的是,它仍然不适合这里。根据Thomas的回答,关键是决定(a)系统中的实体是什么(科目、学生、教师等)和(b)关系是什么(1:1、1:多、多:多)。(顺便说一句,涉及面广且未包含事先尝试的问题可能会被作为非主题搁置—有空时值得阅读帮助部分).我试图找到,但我希望有一个清晰的结构作为要做的事情,一旦我得到一张图片,想法就会清晰,但是关系数据库的主题太详细了,我不得不为快速易懂的步骤发帖。不幸的是,它仍然不适合这里。