2011-10-21 21 views
0

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

在学校的班级。

与用户关联的类需要是动态的,并且对于每个用户可能不同。

我正在考虑使用与我的用户配置文件表中的类关联的特定数量的列。然后,只要将classId插入到行中(如果它们与该类关联)即可。然后继续填充它。

这看起来很脏,很糟糕。我可以通过哪些其他选项查询数据库以了解用户与哪些类关联?

回答

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 

你可能想每一列单独设置成(USER_ID,类标识码)和指数PK的关联表。

如果你想对类不仅仅是ID的详细信息,做一个连接:

select u.name, ... 
from users u join user_classes uc on u.id = uc.user_id 
where uc.user_id = X 
+0

我很享受这个答案。 +1。我会试试看看它是如何工作的。 – prolink007

+2

@ prolink007:这是在SQL中实现一组简单属性的一种非常标准的方法,在“关联表”上做一些google。 –

+0

这就是我目前正在做的事情。 =) – prolink007