c# - 工作台的连接表和链接表之间有区别还是相同?

标签 c# mysql .net join linktable

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

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

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

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

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

最佳答案

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

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

外键表示不同表中的主键

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

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

例如:

用户

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

帖子

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 查询查找给定用户的所有帖子,使用 UserPostUser链接在一起>发布

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/

相关文章:

c# - 我如何使用 opencv 在 c#.net 中进行对象检测?

PHP 登录系统 - 当像在数据库中一样登录用户名时,将用户名设置为小

php - mysql查询锻炼不在我的 friend 列表中的 friend 的 friend

php mysql特殊字符

javascript - 使用 Kendo Grid 读取操作发布模型

c# - 带有画笔的 Oxyplot 注释

c# - 在 C# 中使用委托(delegate)

c# - 递归调用方法时防止 System.StackOverflowException

.net - 如何以编程方式为 BasicHttpBinding 指定 HTTPS?

c# - 使用线程安全的 .NET 4+ 集合时是否可能导致死锁?