Sobes.tech
Назад к вопросам
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.