Pregunta

Digo que estoy creando una aplicación de foros, entiendo cómo diseñar un sistema de permisos a nivel de foro con Grupos.

es decir, crea un foro para la asignación de grupos y asigna usuarios a un grupo para darles acceso a un foro en particular.

¿Cómo puedo refinar los permisos para permitir permisos de nivel de fila (o en términos de foro, nivel de publicación)?

No hay solución correcta

Otros consejos

Lo harías de una manera similar a la que ya has descrito. Requerirá unas cuantas más juntas. Digamos que tienes una estructura como esa (he mantenido intencionalmente las restricciones para hacerla genérica y reducir la cantidad 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
)

Luego puedes hacer varias combinaciones para asegurarte de restringir el contenido en consecuencia:

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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top