Создание ассоциации между двумя записями в таблице SQL - PullRequest
0 голосов
/ 01 июня 2019

У меня есть работа по настройке базы данных для небольшого предприятия.

В настоящее время у меня настроено 5 таблиц:

  • Клиенты
  • Счета
  • Ассоциации
  • Безопасность (залог)
  • Ссылки (коды ссылок, относящиеся к типу работы)

Одна из моих задач - создать таблицу сопоставлений, которая будет связываться с таблицей «Клиенты» и отображать связь между двумя клиентами.

Столбцы для таблицы ассоциации:

  • AssociationID
  • Customer1
  • AssociationType
  • Customer2

Вывод должен быть «Customer1 is AssocationType of Customer2», например «Dave is Accountant for Jim»

Как мне настроить его так, чтобы Customer1 и Customer2 были из таблицы Customer?Я думаю, что это может быть с Foreign Keys, но я не уверен.

1 Ответ

0 голосов
/ 01 июня 2019

Вы можете установить внешние ключи:

alter table associations add constraint fk_associations_customer1
    foreign key (customer1_id) references customers (customer_id);

alter table associations add constraint fk_associations_customer2
    foreign key (customer2_id) references customers (customer_id);

Внешние ключи должны быть сделаны для первичного ключа, поэтому вам нужно определить customers так:

create table customers (
    customer_id int primary key, -- perhaps identity, serial or autoincrement depending on your database
    . . .
);

You 'Обратите внимание на соглашения об именах:

  • Таблицы во множественном числе (содержат несколько примеров чего-либо).
  • Первичным ключом является единственное число, за которым следует _id.
  • Внешний ключ является тем же именем, что и первичный ключ ссылочной таблицы, или очень похож на него.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...