permissões de usuário de nível de linha, ajuda com design
-
05-07-2019 - |
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>