2010-06-22 39 views
2

我正在創建一個Web應用程序,我只是想知道如何考慮來自MVC背景的Drupal的數據庫。 我有表格來表示人們的數據,如SSN,名字,姓氏,郵政編碼,地址,語言,位置等。現在在前端,我想創建一個表單來填充一些主題(人物)的這些信息。我有我的數據庫正常化,所以郵編有自己的表(與人表的外鍵鏈接)。 「人」表具有諸如名字,姓氏,地址等等,而「語言」表將具有不同的語言縮寫(再次將外鍵返回到人表)。移動數據庫架構到Drupal

我想知道如何將這樣的東西移動到Drupal的模式。我知道我可以創建自己的表並將它們鏈接回「節點」表,然後我認爲構建我的表單以接受用戶輸入......但這是建議的方式嗎?我在看webform,但似乎這應該用於數據庫未標準化且所有內容都存儲在一個大表中的簡單表單。我不確定,但我一定會喜歡聽到你們的想法......如果你能指點我一些很棒的資源。

+0

是用戶還是客戶? – googletorp 2010-06-22 07:07:24

+0

他們是客戶 – berto77 2010-07-01 19:48:33

回答

2

這聽起來像你只是存儲信息和主題(人)不會是Drupal網站的用戶。

利用節點和CCK模塊實現這一目標將會消除大部分開發工作。例如,您的每個表格(例如,人員,郵政編碼,語言)都可以由具有多個字段的內容類型來表示。外鍵將由節點引用字段表示。所以Person內容類型可能有一個或多個節點引用類型爲Language的節點。

migrate module似乎很好用的(至少在10個不同的Drupal網站使用626th most popular of 4000+ modules),但它可能更容易自己動手遷移腳本,但我不熟悉,或者您的情況,與你的熟悉程度Drupal的API或遷移模塊。

節點引用字段默認情況下顯示爲引用節點的鏈接,但可以以加載和顯示引用節點爲主題(例如在Person節點中顯示語言信息)。有一個方便的screencast,演示瞭如何使用主題節點引用字段來加載和選擇性地顯示引用節點的內容。

+0

好吧,所以節點引用基本上是「外鍵」鏈接 - 是有道理的..感謝 – berto77 2010-06-22 17:24:20

3

Drupal非常靈活,您可以創建任意表,然後編寫代碼將它們鏈接回節點表。然而,這樣做意味着你會得到很多代碼,這些代碼非常特定於你的模式,並且與其他Drupal模塊不能很好地互操作。

如果你主要用Drupal的方式做事,你會發現你用Drupal更好。只有在你正在做一些未被標準Drupal模塊覆蓋的特定解決方案時,你才需要這樣做。

例如,您可能會發現profile module只要有關人員的標準信息符合您的需求即可。 location模塊(特別是用戶位置)將覆蓋用戶地址。通過使用這些模塊,您將來可能會發現其他模塊與其一起工作,並且總體而言,您會發現代碼編寫較少。

您可能會發現有用的一件事是migrate module用於將現有數據存入Drupal。

+0

謝謝Jeremy ......個人資料和位置模塊似乎適用於已註冊(作爲用戶訪問該網站)的用戶。我需要一個表格來捕捉人物(主體)的數據。但感謝評論......它給了我更多的見解。我也可以使用這些模塊中的一些表格。 – berto77 2010-06-22 17:20:26

1

從MVC背景來看,您可能不喜歡Drupal如何將數據存儲在數據庫中。

配置文件模塊被提及,但我發現我獲得更多的靈活性與內容配置文件和CCK相結合。

我以前從Coldfusion編寫過一些遷移腳本到Drupal,並沒有太多介入。

+0

我將檢查內容配置文件。 – berto77 2010-06-22 17:24:53