gpt4 book ai didi

主键列与同一列之间的SQL关系

转载 作者:行者123 更新时间:2023-12-05 00:24:09 26 4
gpt4 key购买 nike

在现有的 SQL Server 数据库中,有人定义了以下内容:

Customer 有一个 CustomerID 列,它也是标识。然后他们定义了一个关系,其中 Customer.CustomerID 是主键,Customer.CustomerID 也是外键。 IE。关系指向相同的表和相同的列。

这样做的目的是什么?对我来说似乎完全没有意义,所以我打算从数据库中删除这种关系。

最佳答案

该关系称为递归关联自反关系,当您需要呈现同一元素的两个或多个元素之间的关系时,您将需要这种类型的关系类型。

例如:为了表示员工之间的关系,您可以创建两个表EmployeeManager。但是因为经理也是雇员,所以不需要两张表。因此,我们创建了指向同一实体的递归关联。

More about recursive association

更新

同时设置一个列为PK和FK也可以代表继承的概念。

例如:

class Person { 
int ID;
string name;
}

class Customer extends Person {
String workPlace;
}

这将产生下面列出的表 Person 和 Customer:

Person 
------------
int id (PK)
string name

Employee
--------------
int id (PK, FK)
string workPlace

关于主键列与同一列之间的SQL关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36547730/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com