Могу ли я иметь 2 внешних ключа в таблице, указывающих на один и тот же столбец? - PullRequest
0 голосов
/ 24 февраля 2019

У меня есть транзакция таблицы, представляющая финансовую транзакцию между 2 фондами:

CREATE TABLE transact 
(
    id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    src_fund_id INT ,
    dest_fund_id INT ,
    units FLOAT, 
    FOREIGN KEY (src_fund_id) REFERENCES funds(id),
    FOREIGN KEY (dest_fund_id) REFERENCES funds(id)
);

И исходный, и целевой фонды поступают из одной таблицы Funds.Кажется невозможным заставить оба ФК указывать на один и тот же столбец.В этом случае я должен проектировать мою БД по-другому?

Ответы [ 2 ]

0 голосов
/ 24 февраля 2019

Да, возможно создать две точки FK в одном столбце.Но рекомендуется добавить один столбец в таблицу
Транзакция содержит идентификаторы обоих столбцов в таблице средства разделены запятой.

0 голосов
/ 24 февраля 2019

Конечно, вы можете иметь два внешних ключа для разных столбцов в одной и той же таблице.Это стандартно в SQL.

Ваш код в порядке, как написано.Конечно, это предполагает, что существует таблица funds со столбцом с именем id и типом которого является int.

Здесь - это скрипта db <>, которая показывает, что вашкод работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...