Необходимо создать представление для следующих - PullRequest
0 голосов
/ 01 апреля 2020

Вот три таблицы

Table users {
  id uuid [pk, default: `gen_random_uuid()`]
  auth_id uuid [ref: - auths.id]
  org_id uuid [ref: - orgs.id]
  access_group text [default: 'DEFAULT']
  created_at int [default: `now()::int`]
  updated_at int
  age int
  status text
}

Table op_user_access_groups {
  op_id uuid [pk, ref: > ops.id]
  access_group text [pk, default: 'DEFAULT']
}

Table op_users {
  op_id uuid [pk, ref: > ops.id]
  user_id uuid [pk, ref: > users.id]
  access boolean [default: false]
}
  1. Таблица users содержит информацию о пользователе, и он / она принадлежит определенной организации (org_id)
  2. Таблица op_user_access_groups имеет информация об операторе, имеющем доступ ко всем access_groups. op_id принадлежит org_id
  3. Таблица op_users содержит информацию о пользователях (user_id), к которой может обращаться op_id независимо от того, к какой группе принадлежит пользователь.

Я хочу создать представление так, чтобы, если я сделаю

select * from <that view> where op_id = ?

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

Любая помощь приветствуется:)

...