0
Fork 0
mirror of https://github.com/logto-io/logto.git synced 2024-12-16 20:26:19 -05:00
logto/packages/schemas/tables/organization_role_application_relations.sql
2024-06-22 22:59:43 +08:00

18 lines
1.1 KiB
SQL

/* init_order = 3 */
/** The relations between organizations, organization roles, and applications. A relation means that an application has a role in an organization. */
create table organization_role_application_relations (
tenant_id varchar(21) not null
references tenants (id) on update cascade on delete cascade,
organization_id varchar(21) not null,
organization_role_id varchar(21) not null
references organization_roles (id) on update cascade on delete cascade,
application_id varchar(21) not null,
primary key (tenant_id, organization_id, organization_role_id, application_id),
/** Application's roles in an organization should be synchronized with the application's membership in the organization. */
foreign key (tenant_id, organization_id, application_id)
references organization_application_relations (tenant_id, organization_id, application_id)
on update cascade on delete cascade,
constraint organization_role_application_relations__role_type
check (check_organization_role_type(organization_role_id, 'MachineToMachine'))
);