当前位置:  开发笔记 > 编程语言 > 正文

将用户添加到数据库中的多个组的最佳方法是什么?

如何解决《将用户添加到数据库中的多个组的最佳方法是什么?》经验,为你挑选了1个好方法。

在用户可以属于多个组的应用程序中,我当前正在将其组存储在称为groups二进制的列中.每四个字节是一个32位整数,即GroupID.但是,这意味着要枚举组中的所有用户,我必须以编程方式选择所有用户,并手动查明它们是否包含该组.

另一种方法是使用unicode字符串,其中每个字符都是表示组的整数,这使搜索变得容易,但有点像软糖.

另一种方法是创建一个单独的表,将用户链接到组.一列叫UserID,另一列叫GroupID.

哪种方式最好?或者,还有更好的方法?



1> JacquesB..:

用户和组之间存在多对多关系.这需要一个单独的表来组合用户和组:

User: (UserId[PrimaryKey], UserName etc.)
Group: (GroupId[PrimaryKey], GroupName etc.)
UserInGroup: (UserId[ForeignKey], GroupId[ForeignKey])

要查找给定组中的所有用户,您只需说:

select * from User join UserInGroup on UserId Where GroupId=

经验法则:如果您觉得需要在同一个字段中对多个值进行编码,则可能需要一个单独的表的外键.使用字节块或Unicode字符的技巧只是在一个字段中编码多个值的巧妙技巧.数据库设计不应该使用聪明的技巧 - 保存应用程序代码;-)

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有