在SQL表中的两个条目之间创建关联

时间:2019-06-01 14:27:21

标签: sql database database-design

我有一件工作要为小型企业建立数据库。

目前我已经设置了5张桌子:

  • 客户
  • 帐户
  • 协会
  • 安全性(抵押)
  • 参考(与工作类型相关的参考代码)

我要做的任务之一是创建一个关联表,该表将链接到“客户”表并显示2个客户之间的关联。

关联表列:

  • AssociationID
  • Customer1
  • AssociationType
  • Customer2

输出应为“ Customer1是Customer2的AssocationType”,例如“ Dave是Jim的会计师”

如何设置它,以便Customer1和Customer2来自客户表?我认为可能与外键有关,但我不确定。

1 个答案:

答案 0 :(得分:0)

您可以设置外键:

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
    . . .
);

您会注意到命名约定:

  • 表是复数形式(其中包含多个示例)。
  • 主键是单数,后跟_id
  • 外键与被引用表的主键名称相同或非常相似。