2017-02-13 20 views
0

我已重新開始工作和舊項目。這是一個包含6個表格的訪問數據庫。其中之一是主表TableA。這是它的工作原理。Oledb和Access。應該使用Inner Join還是C#循環?

TableA與TableB,TableC和TableD有一對多關係。

TableD與TableE有一對多關係。

TableE與TableF有一對多關係。

在任何時候,我只需要1個記錄從表A,但總是需要在表B,C,d,E和F的相關記錄

我很好使的表單獨選擇電話B和C,但是表D的關係很有趣。對於表A中的每條記錄,表D將有4到5條記錄。對於表D中的每條記錄,表E將有4到5條記錄。對於表E中的每條記錄,表F可能有100多條記錄。

我最終需要向最終用戶展示什麼:來自表A,B,C和D的信息。表E中的信息必須按表D分組(我正在使用組合框),並且表F中的信息必須是按表E分組(也是組合框),然後分成4組中的1組。

目前我有一個數據庫接口類,使我所有的數據庫調用,並返回一個綁定列表。我最近開發了一個SQL查詢,它在TableD,TableE和TableF上執行一個Inner連接,並且認爲我會循環返回的記錄,仔細地創建我的6個單獨的BindingList。

我的問題:如何避免太多的數據庫命中?我錯誤地認爲內連接會比4個獨立的數據庫調用更好嗎?

+1

我不明白你的數據就是這樣,因爲我看不到它,但我會建議你在數據庫中儘可能多地舉起重物,因爲這是爲了它的目的。 –

+0

謝謝蒂姆!我會盡快爲DB創建一個模型視覺。 –

回答

0

這不是您應該擔心的數據庫點擊次數。首先擔心使用正確的工具進行工作。關於加入時,關係數據庫非常複雜。用這個到最大。 Crazy是在數據庫之外進行連接的唯一詞。

書寫SQL加入了5桌會更加有趣,如果你使用QueryFirst(免責聲明:這是我寫的)