表-A
表-B
Table_C
SELECT * FROM Table_C WHERE TC_TableA_ID = 1
(是的,我知道“SELECT *”很糟糕;只是在这个例子中使用它。)
= = = = = = = OR = = = = = = =
表-A
表-B
Table_C
SELECT * FROM Table_C c LEFT JOIN Table_B b ON c.TC_TableB_ID = b.TB_ID WHERE TB_TableA_ID = 1
我一直在使用我的项目/代码,但并没有真正坚持一个;哪一个是最有效的架构/查询形式?
答案 0 :(得分:0)
标记我的第二个选择:加入。表C应引用与其直接相关的列。例如,如果:
当部门的位置发生变化时会发生什么?您更新Department表以引用新的Location记录。但是,您是否必须浏览所有员工记录并更新它们?通过使用两个不同的路径,您可以轻松地引入完整性问题,从而获得两个不同的结果。 (员工位于何处?路径1:直接前往位置,路径2:前往部门,然后前往位置)。这真是一种痛苦。
如果索引正确,则性能不应成为问题。