所以,我在PHP / MySQL方面经验丰富,我之前做过一些事情,比如创建一个小型聊天网站甚至是一个小页面分析应用程序。不过,这个最近的项目正在挑战我的能力。
所以,我正在为学校设计这个应用程序。我有一个用户列表和一个类列表。我希望能够将用户分配给多个类(现在我通过引用类表中的条目的UID来存储单个赋值)。我是否必须通过为每个可能分配的类添加额外的列来实现这一目标(有一个列为他们的第一个类,第二个类,等等到某个限制)?我是否必须将用户限制为多个已分配的课程?还是有更优雅的解决方案?我知道建议不要在单个单元格中进行逗号分隔列表(我可以就此达成一致,因为我打算根据类UID等搜索学生)。
所以,抱歉我对此有点新意,但我真的不知道该怎么做。每个指定类的列都可以使用,但我觉得应该有一个更优雅的解决方案。
无论如何,请告诉我,谢谢。
答案 0 :(得分:2)
简而言之,您需要第三个表来跟踪用户和类之间的关系
用户1 - 1级
用户1 - 第2类
...
用户2 - 2级
...
将2个字段设为PK,以确保用户1不能在第1类中注册两次。
您需要确保用户和/或类表中的删除以某种方式传播到此处,您将走在正确的轨道上
答案 1 :(得分:2)
使用第三个表来处理许多关系。 class_roll
表包含两个字段class_id
& student_id
。两者都是主要的,以避免重复。这是一个班级可以有零个或多个学生,一个学生可以被分配零个或多个班级
class
-----
+ class_id
class_name
...
student
-------
+ student_id
student_name
...
class_roll
----------
+ class_id
+ student_id