Разрешения пользователя на уровне строки, помощь с дизайном

StackOverflow https://stackoverflow.com/questions/620438

  •  05-07-2019
  •  | 
  •  

Вопрос

Допустим, я создаю приложение forums, я понимаю, как создать систему разрешений на уровне форума с группами.

т. е.вы создаете сопоставление форума с группой и назначаете пользователей группе, чтобы предоставить им доступ к определенному форуму.

Как я могу уточнить разрешения, чтобы разрешить разрешения на уровне строки (или, выражаясь терминами форума, на уровне публикации).

Нет правильного решения

Другие советы

Вы бы сделали это аналогичным образом, как вы уже описали.Для этого потребуется еще несколько соединений.Допустим, у вас есть структура, подобная so (я намеренно убрал ограничения, чтобы сделать ее универсальной и уменьшить объем кода):

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>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top