16 lines
No EOL
538 B
SQL
16 lines
No EOL
538 B
SQL
CREATE TABLE IF NOT EXISTS user_roles (
|
|
user_id INTEGER NOT NULL,
|
|
project_id INTEGER NOT NULL,
|
|
role STRING NOT NULL, -- 'admin' or 'member'
|
|
FOREIGN KEY (user_id) REFERENCES users (id)
|
|
FOREIGN KEY (project_id) REFERENCES projects (id)
|
|
PRIMARY KEY (user_id, project_id)
|
|
);
|
|
|
|
-- Make sure that the role is either 'admin' or 'member'
|
|
CREATE TRIGGER IF NOT EXISTS user_role_admin_or_member
|
|
BEFORE INSERT ON user_roles
|
|
FOR EACH ROW
|
|
BEGIN
|
|
SELECT RAISE(ABORT, 'Invalid role') WHERE NEW.role NOT IN ('admin', 'member');
|
|
END; |