Pergunta

Say Estou criando um aplicativo fóruns, eu entendo como projetar um sistema de permissão nível fórum com Grupos.

i. criar um fórum para mapeamento de grupo, e os usuários atribuir a um grupo para dar-lhes acesso a um fórum particular.

Como posso refinar as permissões para permitir permissões de nível de linha (ou em termos fórum, nível pós).

Nenhuma solução correta

Outras dicas

Você faria isso de uma maneira semelhante como você já descrito. Ele vai exigir um pouco mais junta. Vamos dizer que você tem uma estrutura assim (eu intencionalmente mantido fora as restrições para torná-lo genérico e reduzir a quantidade de código):

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
)

Em seguida, você pode fazer várias associações para garantir que você restringir o conteúdo de acordo:

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>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top