0

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

我查找了信息,发现有些人在 WorkBench 中进行设计,有些人使用连接,就像我在一些关于连接的教程中看到的那样。

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

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

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

4

1 回答 1

0

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

唯一标识给定表中的行。

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

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

我没有太多使用 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将是一个“链接表”,它将UserPost表链接在一起以指示任何一个用户可以拥有的许多帖子。

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

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

总而言之,链接表允许我们使用连接将来自多个表的信息“连接”在一起。因此,链接表更常被称为“连接表”。有关连接表的更多详细信息,请参阅这篇文章

于 2019-02-24T18:36:20.760 回答