我正在考慮一個用例,其中應用程序的每個用戶都可以使用n個不同數據類型的不同表單字段創建N個表單。每個用戶然後可以以其各自的形式接收表格數據。這些數據可以被更新,編輯,搜索,排序等。用於爲動態創建的表單保存表單數據的DB結構
我想知道,我如何在MySQL中爲此設計數據庫體系結構。
我最初的做法是將表單結構以序列化形式保存在一個表中,其中form_id作爲主鍵。另一張表中,數據應包含列的形式:form_id,record_id,order,value。這裏,順序將是表示表單結構中字段位置的數字。值列應具有該字段的值。這種方法導致我有10行(對於具有10個字段的表單)一組記錄。另外,我不認爲這樣的查詢可以寫入特定表單的搜索記錄。
我的確想到在這個用例中使用mongodb,其中表單結構應該存儲在一個數組中,並且在該數組中,該表單的所有記錄都應該被存儲。我從來沒有使用過mongodb,但是我猜如果我將文檔存儲在文檔中,mongodb會對大小產生某種限制。那麼,使用MySQL(或任何其他數據庫完美適用於這種用例)的最佳方法是什麼?
關於您的問題的問題太多了......您是否可以縮小範圍?有很多種方法可以將它存儲在任何現代數據庫系統中。這完全取決於數據的使用方式,使用頻率以及用戶數量。看起來列可能有數據類型(要進行排序,他們需要有關聯的數據類型)。 (你用什麼查詢來試圖搜索特定表單的記錄?爲什麼他們不能被搜索? – WiredPrairie