假设我正在创建一个论坛应用程序,我知道如何设计一个带有组的论坛级权限系统。
例如,您创建一个论坛到组的映射,并将用户分配到一个组,以允许他们访问特定的论坛。
如何细化权限以允许行级别的权限(或论坛术语中的帖子级别)。
发布于 2009-03-06 21:32:59
您将以类似于您已经描述过的方式来完成此操作。这将需要更多的连接。假设你有一个这样的结构(我有意地把约束去掉,使它成为通用的,并减少代码量):
CREATE TABLE ForumPost (
PostID int,
ForumID int,
PostText varchar(255)
);
CREATE TABLE ForumUser (
ForumUserID int,
ForumUserName varchar(255),
NumofPosts int
);
CREATE TABLE ForumGroups (
ForumGroupID int,
ForumGroupName varchar(255)
)
CREATE TABLE ForumGroupMembership (
ForumUserID int,
ForumGroupID int
)
CREATE TABLE ForumPermissions (
ForumID int,
ForumGroupID int,
MinPosts int
)然后,您可以执行多个连接,以确保相应地限制内容:
SELECT FPost.PostID, FPost.ForumID, FPost.PostText
FROM ForumPost FPost
JOIN ForumPermissions FPerm
ON FPost.ForumID = FPerm.ForumID
JOIN ForumGroupMembership FGM
ON FPerm.ForumGroupID = FGM.ForumGroupID
JOIN ForumUser FUser
ON FUser.ForumUserID = FGM.ForumUserID
WHERE FUser.NumOfPosts >= FPerm.MinPosts
AND FPost.PostID = <Some Number>https://stackoverflow.com/questions/620438
复制相似问题