存储与数据库中的动态类数相关联的用户

时间:2011-10-21 01:59:00

标签: mysql sql database database-design

我有一个表,用于将用户信息存储在MySQL数据库的表中。我需要一种方法来存储与这些用户相关联的类。

班级,如...学校。

与用户关联的类需要是动态的,并且每个用户可以有所不同。

我在考虑在我的用户配置文件表中使用与特定数量的列关联的列。然后,如果它们与类关联,则只需将classId插入一行。并继续填补它。

这看起来很脏而且很糟糕。我可以查询数据库以了解用户与哪些类相关联的其他选项是什么?

1 个答案:

答案 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