在数据库概念中,我可以在三个表之间建立连接吗?像这样:
编辑: 我问的是设计,而不是代码!
答案 0 :(得分:2)
这种数据库设计是可行且有效的。但是很难说是或否,因为每个数据库设计在很大程度上取决于要求。正如我从图像中看到的那样,你做了类似的事情:
红色矩形表示FOREIGN KEYS。如果查看我的图像,您会看到MainTable表只有3个字段,而这3个字段是外键。这是可能的,但是当我们设计时,我们通常会向表中添加其他字段(与其他表无关)。例如,假设:
考虑到图像,你会看到在MainTable中,我们实际上存储的信息是关于哪个驾驶员在哪个城市驾驶某辆车(不要注意这个的真实生活意义,因为它在这一点上不相关)。一切都很好看。您启动应用程序并开始插入数据。然后有一天会发生这种情况,某个司机想在某个他已开车的城市开一辆车。这意味着你将在MainTable表中有一个重复的行。此时,您会发现此设计可能存在一些问题。经过一番思考后,您决定在MainTable表中添加另一个字段:添加"使用日期和时间"这样你就知道汽车开的时候了。
所以现在你有这样的事情:
请注意,您不需要"需要"外键关系,这是维护数据库完整性的一个好习惯!
答案 1 :(得分:0)
select f1.*,f2.*,f3.* from f1 a
join f2 b on a.1=b.1
join f3 c on a.1=c.1
答案 2 :(得分:0)
以下是SQL Server的示例...请相应地尝试。
SELECT p.Name, v.Name
FROM Production.Product p
JOIN Purchasing.ProductVendor pv ON p.ProductID = pv.ProductID
JOIN Purchasing.Vendor v ON pv.BusinessEntityID = v.BusinessEntityID
WHERE ProductSubcategoryID = 15
ORDER BY v.Name;