Question

Dites que je crée une application de forum, je comprends comment concevoir un système d'autorisation au niveau du forum avec des groupes.

i.e. vous créez un forum pour mapper des groupes et assignez des utilisateurs à un groupe pour leur donner accès à un forum particulier.

Comment puis-je affiner les autorisations pour autoriser les autorisations au niveau de la ligne (ou en termes de forum, niveau publication).

Pas de solution correcte

Autres conseils

Vous le feriez de la même manière que vous l'avez déjà décrite. Il faudra quelques jointures supplémentaires. Disons que vous avez une structure semblable à celle-ci (j'ai volontairement éloigné les contraintes pour la rendre générique et réduire la quantité de code):

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
)

Vous pouvez ensuite effectuer plusieurs jointures pour limiter le contenu en conséquence:

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>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top