Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 在表之间建立一对多关系_Sql Server 2008_Foreign Key Relationship - Fatal编程技术网

Sql server 2008 在表之间建立一对多关系

Sql server 2008 在表之间建立一对多关系,sql-server-2008,foreign-key-relationship,Sql Server 2008,Foreign Key Relationship,我有两个表,我需要在它们之间建立一个1-many关系,例如: 1个客户可以有多个订单。 在订单表上创建键的好方法是什么,以便订单中可以有许多行,与一个/相同的客户详细信息相关?i、 e当有两行的CustomerID插入到订单中时(CustomerID外键上有1-many关系),我可以有这样的情况吗 假定 Customer表包含以下列: CustomerID (key) Name OtherColumns 订单: <IsaKeyNeeded> customerID (foreign

我有两个表,我需要在它们之间建立一个1-many关系,例如: 1个客户可以有多个订单。 在订单表上创建键的好方法是什么,以便订单中可以有许多行,与一个/相同的客户详细信息相关?i、 e当有两行的CustomerID插入到订单中时(CustomerID外键上有1-many关系),我可以有这样的情况吗

假定 Customer表包含以下列:

CustomerID (key)
Name 
OtherColumns
订单:

<IsaKeyNeeded>
customerID (foreign key) 
OrderName

customerID(外键)
订单名

我的另一个问题是,“订单”是否需要有自己的钥匙

您已将其正确设置。。。订单表应具有客户表的外键。这将建立一个客户与多个订单的关系。只是不要让CustomerID成为唯一的密钥


要回答你的另一个问题。。。是的,Order表应该有自己的主键。

清理Order表怎么样?是很容易完成还是必须先删除外键关系?我必须定期截断所有表。如果订单上有主键,我可以自动将其作为int或其他形式插入。我有来自.txt文件的客户输入,订单以逗号分隔,作为客户详细信息的一部分。是否可以不使CustomerID成为唯一的键(它仍然需要是键,所以应该是唯一的?)将主键列定义为“int identity”将自动为订单表创建唯一的id。如果必须使用相同的数据跨多个数据库,请使用GUID。谢谢。我有两个stackoverflow帐户,正在尝试合并它们。奇迹般地,这一个工作了很长时间。你知道我可以在哪里问这个问题吗?你可以在不违反外键的情况下删除订单表中的所有条目。正如paquetp所述,您可以使用identity属性使订单PK自动递增。是的,正如我在原始答案中提到的,不要将CustomerID设置为唯一键。外键不必是子表中的唯一键。