У меня есть таблица, в которой есть каждая группа (gid
), к которой принадлежит пользователь (например, uid
, скажем, 1031), и другая таблица, в которой каждая группа имеет разрешение на редактирование данного документа (pid
).Я пытаюсь выяснить наиболее эффективный запрос, чтобы подтвердить, есть ли у пользователя разрешение на редактирование указанного документа (например, если пользователь входит в какую-либо группу, которая указана как имеющая права редактирования).Похоже, что в запросах JOIN обычно возникают проблемы с производительностью, которые я не ожидаю заранее.
Это то, что я придумал.Есть ли лучший способ сделать это?
SELECT p.gid
, p.pid
, p.r
, p.w
FROM permissions p
JOIN groups_members m
ON m.gid = p.gid
WHERE groups_members.uid = 1