Назад к вопросам
Senior
2
Как будет выглядеть связь между таблицами transfers и accounts (две FK на одну таблицу)?
Компании, где спрашивали
Lamoda Tech
Ответ от нейросети
sobes.tech AI
В таблице transfers будет две внешние ключа (FK), обе ссылающиеся на таблицу accounts: одна для счета отправителя (from_account_id), другая — для счета получателя (to_account_id). Это позволяет однозначно указать, с какого счета и на какой был перевод.
Пример SQL-схемы:
CREATE TABLE accounts (
id SERIAL PRIMARY KEY,
account_number VARCHAR(20) UNIQUE NOT NULL,
balance NUMERIC NOT NULL
);
CREATE TABLE transfers (
id SERIAL PRIMARY KEY,
from_account_id INT NOT NULL,
to_account_id INT NOT NULL,
amount NUMERIC NOT NULL,
transfer_date TIMESTAMP NOT NULL,
CONSTRAINT fk_from_account FOREIGN KEY (from_account_id) REFERENCES accounts(id),
CONSTRAINT fk_to_account FOREIGN KEY (to_account_id) REFERENCES accounts(id)
);
Таким образом, каждая запись в transfers связывает два разных аккаунта из таблицы accounts.