2009-09-10 76 views
1

我碰巧在Drupal中開發了一個模塊,並且由於某些看似不對,必須使用自定義SQL。這讓我遇到了一些修改節點的問題,我得出結論 ,在Drupal中最好使用它的本地方法處理任何數據。否則,可能會出現數據完整性問題。在Drupal中保留數據完整性:

甚至與慾望優化Drupal的SQL查詢,顯然這應該在極少數情況下完成真正的瓶頸。

你是什麼關係這一難題的經驗 - 直接的SQL查詢與Drupal模塊/功能?

回答

3

當更新數據時,您應該始終使用Drupal默認值,即使您之後需要爲自定義表格等進行其他查詢也是如此。它不是很明顯(沒有深入代碼)Drupal在各種操作上做了什麼,以及如果複製一個行動的代碼,並把它放在你的功能,你將不得不留意核心從那時起的變化。有觀點

一個竅門可以幫助你,是,如果意見已經得到了你想要的,你可以看到視圖生成的查詢複製並把它放在自己的代碼幾乎什麼。這消除了視圖的其餘部分,並且可以大幅提升性能。

+1

+1更新時,一定要使用Drupal的功能/插入數據 - 即使你遵循的核心模塊的行爲,你可以很容易錯過的東西,其他模塊掛機操作的許多事情。直接從數據庫中讀取通常是可以的,但請注意,您可能會錯過其他模塊通過鉤子添加的數據。 – 2009-09-10 20:20:09