我有一个表,将用户信息存储在 MySQL 数据库的表中。我需要一种方法来存储这些用户关联的类。
就像在学校一样上课。
与用户关联的类需要是动态的,并且对于每个用户来说可以不同。
我正在考虑在我的用户配置文件表中设置与类相关联的特定数量的列。然后,如果它们与该类关联,则只需将 classId 插入到行中。并继续填充它。
这看起来很脏而且很糟糕。我可以通过哪些其他选项查询数据库以了解用户与哪些类关联?
最佳答案
设置两个额外的表:一个用于类(id、name,...),另一个关联表用于将用户与其类相关联。关联表有两列:用户 ID 和类别 ID。然后获取用户的类别:
select class_id
from user_classes
where user_id = X
其中X
是用户的ID。同样,要获取类(class)中的用户:
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
关于mysql - 在数据库中存储与动态数量的类关联的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7844231/