您好,我开始学习一些 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
将是一个“链接表”,它将User
和Post
表链接在一起,以指示任何人发布的许多帖子用户可以拥有。
然后,您可以使用如下所示的 SQL 查询查找给定用户的所有帖子,使用 UserPost
将 User
和 链接在一起>发布
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/