25 lines
970 B
MySQL
25 lines
970 B
MySQL
|
|
-- Миграция для создания таблицы ролей пользователей
|
||
|
|
CREATE TABLE IF NOT EXISTS user_roles (
|
||
|
|
id BIGSERIAL PRIMARY KEY,
|
||
|
|
user_id TEXT NOT NULL,
|
||
|
|
role VARCHAR(50) NOT NULL CHECK (role IN (
|
||
|
|
'manager',
|
||
|
|
'finance_manager',
|
||
|
|
'financier',
|
||
|
|
'finance_director',
|
||
|
|
'director',
|
||
|
|
'top_management'
|
||
|
|
)),
|
||
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||
|
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||
|
|
UNIQUE(user_id, role)
|
||
|
|
);
|
||
|
|
|
||
|
|
-- Индексы
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_user_roles_user_id ON user_roles(user_id);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_user_roles_role ON user_roles(role);
|
||
|
|
|
||
|
|
-- Комментарии
|
||
|
|
COMMENT ON TABLE user_roles IS 'Роли пользователей для workflow согласования счетов';
|
||
|
|
COMMENT ON COLUMN user_roles.role IS 'Роль: manager, finance_manager, financier, finance_director, director, top_management';
|