2011-09-16 29 views
0

圖片的網絡服務,讓用戶構建幾種不同類型的定製Web表單,然後填充每個形式具有不同值的多個實例。數據庫體系結構,允許用戶建立簡單的網頁形成

例如,製作一個名爲「我看過的電影」的形式,包括諸如「流派」,「年份」,「導演」等字段以及另一種形式「我已閱讀的書籍」 ,「網頁」等,然後在我的個人資料中註冊很多電影和書籍。

我試圖找出如何爲這項服務數據庫應該最大的多功能性組織:

  1. ,我認爲最明顯的方法是有一個單獨的表爲每一個新形式,是創建,但看起來它可能很慢,而且編程乏味。

  2. 另一種方法是限制用戶可以插入的字段數量,並創建一個包含所有「表單」並具有諸如「Custom_value_1」,「Custom_value_2」等列的表格(我將不得不將每個值的標籤和數據類型存儲在另一個表中)。

  3. 有沒有想過它尚未:)

回答

1

您正在考慮建立一個特定領域的關係型數據庫和一鍵 - 值模型系統之間的差異。您可以查看這些條款以瞭解更多關於它們的信息。

的鍵值系統更靈活,但難以計劃。關係模型要求你正確地模擬你可能想要放入數據庫的每種「事物」,這種靈活性較低但更容易編程(因爲你可以通過反思數據模型來構建表單) 。

在這種情況下,這聽起來好像都不是真正適合您的最佳解決方案。我會研究一些更靈活的文檔類型存儲。特別是,這聽起來像是對於XML或面向XML的數據庫來說可能是一件好事。

+0

+1 @Bobby,鍵值方法的另一個優點是不需要每次都創建一個新的數據庫表格 - 這需要更多的權限,因此開啓了一個新的安全問題/風險來管理。 –

+0

(RE權限)以及這對MS SQL的情況下,我不知道有關MySQL明確。 –

+0

我意識到,這兩種解決方案鬧心。我不想擁有數百張表。但我太沒經驗了,所以我可以這樣做,如果我沒有想到一些破解... – Bobby

相關問題