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