您好,我开始学习一些C#和MySQL,并尝试制作2个或更多表以相互连接以形成关系数据库。

我一直在寻找信息,发现有些人在WorkBench中进行设计,有些人使用联接,就像我在一些联接教程中看到的那样。

我对一些没有很好解释的关键概念感到困惑。例如,WorkBench中的联接和链接表之间的区别。

它们如何工作?
它们是一样的吗 ?
WorkBench是否仅用于制作数据库的设计模式?

当我说外键和主键并连接它们时,这被认为是联接还是一个完全不同的概念并且具有不同的用途?

最佳答案

连接,外键和主键都是关系数据库中紧密相关的概念。

主键唯一地标识给定表中的行。

外键表示不同表中的主键。

联接是从多个表中检索数据的一种方法。

我没有使用SQL Workbench太多,但是我的猜测是链接表引用的表包含多个外键,以在两个表之间创建“多对多”关系。

例如:

User

CREATE TABLE User(
    userId INT PRIMARY KEY,
    username VARCHAR(40)
);


Post

CREATE TABLE Post(
    postId INT PRIMARY KEY,
    postContents VARCHAR(max)
);


UserPost

CREATE TABLE UserPost(
    userId INT FOREIGN KEY REFERENCES User(userId),
    postId INT FOREIGN KEY REFERENCES Post(postId)
);


UserPost将是“链接表”,将“ User”和“ Post”表链接在一起以指示任何一个用户可以拥有的许多帖子。

然后,您可以使用UserPostUserPost链接在一起,使用如下所示的SQL查询查找给定用户的所有帖子。

SELECT u.username, p.postContents FROM User u
  JOIN UserPost up ON up.userId = u.userId
  JOIN Post p ON up.postId = p.postId


因此,总而言之,链接表允许我们使用联接将来自多个表的信息“联接”在一起。因此,链接表通常被称为“联接表”。有关联接表的更多详细信息,请参见this post

关于c# - 工作台的联接表和链接表之间是否有区别?还是同一件事?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54854607/

10-11 02:53