我有一个表,用于将用户信息存储在MySQL数据库的表中。我需要一种方法来存储与这些用户相关联的类。
班级,如...学校。
与用户关联的类需要是动态的,并且每个用户可以有所不同。
我在考虑在我的用户配置文件表中使用与特定数量的列关联的列。然后,如果它们与类关联,则只需将classId插入一行。并继续填补它。
这看起来很脏而且很糟糕。我可以查询数据库以了解用户与哪些类相关联的其他选项是什么?
答案 0 :(得分:2)
设置两个额外的表:一个用于类(id,name,...),另一个用于将用户与其类关联。关联表有两列:用户ID和类ID。然后获取用户的类:
select class_id
from user_classes
where user_id = X
其中X
是用户的ID。同样,要让用户进入课堂:
select user_id
from user_classes
where class_id = X
您可能希望将关联表的PK设置为(user_id,class_id)并单独索引每列。
如果您想了解有关该课程的更多信息而不仅仅是ID,请进行加入:
select u.name, ...
from users u join user_classes uc on u.id = uc.user_id
where uc.user_id = X