Oledb 和访问。应该使用 Inner Join 还是 C# 循环?
Oledb and Access. Should use Inner Join or C# loop?
我重新开始了旧项目的工作。这是一个具有 6 tables 的访问数据库。其中主要有table、TableA。这是它的工作原理。
TableA 与 TableB、TableC 和 TableD 一对多。
TableD 与 TableE 一对多。
TableE 与 TableF 一对多。
在任何时候我都只需要 tableA 中的 1 条记录,但总是需要 Tables B、C、D、E 和 F 中的相关记录。
我可以单独 Select 调用 Tables B 和 C,但是 table D 的关系很有趣。对于Table A中的每条记录,Table D中将有4到5条记录。对于Table D中的每条记录,Table E中将有4到5条记录。对于 table E 中的每条记录,Table F 中可能有超过 100 条记录。
我最终需要向最终用户展示的内容:来自 Table A、B、C 和 D 的信息。Table E 中的信息必须按 table D(I 'm 使用组合框)和 Table F 中的信息必须按 Table E(也是组合框)分组,然后分成 4 组中的 1 组。
目前我有一个数据库接口 class,它使我的所有数据库调用和 returns 成为一个绑定列表。我最近开发了一个 SQL 查询,它在 TableD、TableE 和 TableF 上执行内部连接,我想我会仔细地遍历返回的记录创建我的 6 个独立的 BindingList。
我的问题:如何才能做得更好,同时避免过多的数据库命中?我是否错误地认为内部连接会比 4 个单独的数据库调用更好?
这不是您应该担心的数据库命中数。首先要担心使用正确的工具来完成工作。在连接方面,关系数据库非常复杂。最大限度地使用它。疯狂是在数据库外进行连接的唯一词。
如果您使用 QueryFirst(免责声明:我写的)
,则编写 SQL 连接 5 个表会更有趣
我重新开始了旧项目的工作。这是一个具有 6 tables 的访问数据库。其中主要有table、TableA。这是它的工作原理。
TableA 与 TableB、TableC 和 TableD 一对多。
TableD 与 TableE 一对多。
TableE 与 TableF 一对多。
在任何时候我都只需要 tableA 中的 1 条记录,但总是需要 Tables B、C、D、E 和 F 中的相关记录。
我可以单独 Select 调用 Tables B 和 C,但是 table D 的关系很有趣。对于Table A中的每条记录,Table D中将有4到5条记录。对于Table D中的每条记录,Table E中将有4到5条记录。对于 table E 中的每条记录,Table F 中可能有超过 100 条记录。
我最终需要向最终用户展示的内容:来自 Table A、B、C 和 D 的信息。Table E 中的信息必须按 table D(I 'm 使用组合框)和 Table F 中的信息必须按 Table E(也是组合框)分组,然后分成 4 组中的 1 组。
目前我有一个数据库接口 class,它使我的所有数据库调用和 returns 成为一个绑定列表。我最近开发了一个 SQL 查询,它在 TableD、TableE 和 TableF 上执行内部连接,我想我会仔细地遍历返回的记录创建我的 6 个独立的 BindingList。
我的问题:如何才能做得更好,同时避免过多的数据库命中?我是否错误地认为内部连接会比 4 个单独的数据库调用更好?
这不是您应该担心的数据库命中数。首先要担心使用正确的工具来完成工作。在连接方面,关系数据库非常复杂。最大限度地使用它。疯狂是在数据库外进行连接的唯一词。
如果您使用 QueryFirst(免责声明:我写的)
,则编写 SQL 连接 5 个表会更有趣