我正在寫一個Drupal模塊來處理從CSV文件創建新節點。我一直在做的方式是,用戶提供一個節點類型,然後我的模塊進入數據庫查找該節點的字段。Drupal:在處理節點類型信息時避免數據庫?
用戶將節點字段與CSV字段相匹配後,我想驗證數據。這需要找出節點字段的類型。我不完全確定如何做到這一點。 (也許看看content_node_field
表?)
然後,我必須創建節點。目前,該模塊創建一個新的對象,將其填充必要的數據並保存。
但是,如果我能完全抽象出數據庫並避免處理它呢?如果我向用戶詢問這種已存在的節點,該怎麼辦?我可以node_load()
這個節點,並用它來確定節點字段。當需要保存節點時,我可以使用「種子」節點來確定新節點的結構。
一個缺點是:這需要至少有一個這種類型的節點在模塊可以運行前存在。
此外,這會比直接訪問數據庫慢嗎?
我擔心隨着時間的推移,數據庫名稱可能會改變,而內容類型可能會在多個表中定義。通過僅從預先存在的節點進行工作,我可以解決許多這些問題。對?
是的,我知道我最終必須打到數據庫,這只是我自己寫SQL還是使用已經寫好的數據的問題。 – 2010-01-03 22:51:16