2017-01-24 119 views
0

我正在編寫一個使用sequelize作爲我的ORM for SQL數據庫(PostgreSQL)的Web應用程序。
我在MongoDB而不是SQL數據庫有更多的經驗,我一直在尋找一種方法來查詢一個請求中的完整模型。總是加入SQL表是否是一種很好的做法?

比方說,我有UserComment型號,並且User可能有許多Comment s。
我將CommentUser保留在不同的表格中(並且它們也被拆分成單獨的表格)。
當我想查詢User時,我是否應該使用join創建查詢以獲取評論?
在每個查詢的所有模型關係之間執行完全連接是好的還是不好的做法?

+1

在表格之間進行連接是完全正常的;這是關係數據庫的創建目的。您可以在連接列上添加索引以獲得更好的性能。 –

+1

如果你使用的是ORM,你認爲你應該直接查詢數據庫嗎?讓ORM處理數據層的查詢 - 利用ORM並讓它完成工作。 – STLDeveloper

+0

當然,我會利用這個orm,而不會自己編寫它,但是我仍然需要告訴orm來執行這個連接。 – itaied

回答

1

使用連接,只需一次查詢,就可以使用您選擇的任何搜索參數篩選結果,從任意數量的表中準確提取所需的數據。 MySQL還可以利用諸如索引之類的東西來最大限度提高性能,而API代碼則無法實現。

一般來說,執行多個查詢並使用某種類型的API(如PHP)來過濾結果會給服務器造成更多的開銷。更多的數據必須在MySQL和API之間來回發送,更不用說MySQL是爲了獲得最佳性能而構建的,在處理每個開發人員的API代碼時,這是無法保證的。

所以在你的情況下,去用戶,評論加入。

相關問題