如何将foreing键添加到具有两个主键的表中

编程入门 行业动态 更新时间:2024-10-27 14:31:47
本文介绍了如何将foreing键添加到具有两个主键的表中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

使用LifeSpireDB; 创建表客户( Customer_ID int, Customer_Name varchar(50), Customer_Address varchar(50), Customer_Phone varchar(50), 主键(customer_ID) ); 创建表订单( Order_Num int, Order_Date varchar(10), Order_Status varchar(50), Customer_ID int, 主键(Order_Num), 约束fk_PerCostumer外键(Customer_ID )引用Customer(Customer_ID)); 创建表ItemsInOrder( Order_Num int, Item_ID varchar( 15) 主键(Order_Num,Item_ID), 约束fk_perItemsOder外键(Order_Num)引用订单(Order_Num)); 创建表项( Item_UID int, Item_ID varchar(15), Item_Description varchar(300) 主键(Item_UID), 缺点traint fk_PerItem外键(Item_ID)引用ItemsInOrder(Item_ID)); 我的表项目有一个外键是表ItemsInOrder中的主键,问题是ItemsInOrder有两个主键。 任何人都可以帮我吗???

解决方案

您好, 首先,您可以只有一个主键。您的主键中可以有多个列。这样的密钥称为复合或复合主键。 根据您的示例:

创建 table 项目( Item_UID int , Item_ID varchar ( 15 ), Item_Description varchar ( 300 ) primary key (Item_UID), 约束 fk_PerItem foreign key (Item_ID) references ItemsInOrder( Order_Num,Item_ID ));

这很重要:您需要在表中添加 Order_Num 列(我尚未将其添加到此示例中) 。否则,你就是无法建立外键关系! --------------------- -------------------------------------------------- ---------------- 我对你的数据模型的看法: 1.为什么你需要一个复合主键 ItemsInOrder 表?我会说你可以添加 ItemsInOrder_ID 列并使其成为简单的主键。 2. 项目 ItemsInOrder 表格应该是一对多。 3. 订单 ItemsInOrder 表之间的关系应该是一对多。

use LifeSpireDB; create table Customer( Customer_ID int, Customer_Name varchar(50), Customer_Address varchar(50), Customer_Phone varchar(50), primary key (customer_ID)); create table Orders( Order_Num int, Order_Date varchar(10), Order_Status varchar(50), Customer_ID int, primary key(Order_Num), constraint fk_PerCostumer foreign key(Customer_ID) references Customer(Customer_ID)); create table ItemsInOrder( Order_Num int, Item_ID varchar(15) primary key (Order_Num, Item_ID), constraint fk_perItemsOder foreign key(Order_Num) references Orders(Order_Num)); create table Item( Item_UID int, Item_ID varchar(15), Item_Description varchar(300) primary key (Item_UID), constraint fk_PerItem foreign key (Item_ID) references ItemsInOrder(Item_ID)); My table Item has a foreign key which is a primary key in table ItemsInOrder, the problem is the ItemsInOrder has two primary keys. Can anyone help me please???

解决方案

Hi, First of all, you can have only one primary key. You can have multiple columns in your primary key. Such key is called a compound or composite primary key. According to your example:

create table Item( Item_UID int, Item_ID varchar(15), Item_Description varchar(300) primary key (Item_UID), constraint fk_PerItem foreign key (Item_ID) references ItemsInOrder(Order_Num, Item_ID));

This is important: You need to have a Order_Num column in your Item table (I haven't added it into this example). Otherwise, you just can't create a foreign key relationship! --------------------------------------------------------------------------------------- My thoughts about your data model: 1. Why do you need a composite primary key in ItemsInOrder table? I would say that you could add ItemsInOrder_ID column and make it as simple primary key. 2. Relationship between Item and ItemsInOrder tables should be one-to-many. 3. Relationship between Orders and ItemsInOrder tables should be one-to-many.

更多推荐

如何将foreing键添加到具有两个主键的表中

本文发布于:2023-10-26 17:09:49,感谢您对本站的认可!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:如何将   主键   两个   foreing

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!