Перивет. Придумал два варианта связывания двух таблиц (таблица члэнов коллективного аккаунта и таблица привилегий для отдельно взятого члэна аккаунта (пользователь может являться члэном нескольких коллективных аккаунтов)):
- Добавить в обе таблицы новое поле id и использовать его в качестве первичного ключа в первой и внешнего ключа во второй таблице
- Использовать уже имеющийся составной первичный ключ [user_id + account_id], но тогда во второй таблице тоже придётся добавлять эти два поля вместо одного поля для id
Таблицы (
InnoDB):
CREATE TABLE account_member
(
user_id INT REFERENCES user(id),
account_id INT REFERENCES account(id),
is_owner BOOLEAN NOT NULL,
entry_date DATETIME NOT NULL DEFAULT NOW(),
PRIMARY KEY (user_id, account_id)
);
CREATE TABLE privileges
(
user_id INT REFERENCES user(id),
account_id INT REFERENCES account(id),
privilege_id INT NOT NULL
);
Что же выбрать? : \