java - 動態表單應該如何設計數據庫?
問題描述
需求是這樣的
在后臺管理界面錄入表單信息,規定有哪些表單 (可以增刪)
在前端顯示哪些表單的可以填寫
最后把填寫的表單(產生的真實數據)存入數據庫
最后填入的數據需要能夠方便查詢,排序,過濾的數據
我在網上找了挺多資料都不太符合我的需求。 有沒有設計大神提供一下設計的思路!!!
問題解答
回答1:1、先定義一張控件表,如單行文本,多行文本,單選,多選,時間等2、再定義一張配置表,用來定義一個Form有哪些字段,以及字段名字(用來顯示,如姓名,性別),控件類型,字段默認值,字段長度,是否必填等信息3、然后在后臺把對應配置表添加的記錄存到另一張記錄表,記錄表里存放的可能有多個單行文本,多個單選等記錄(多余)4、接著根據記錄表的信息顯示Form,5、最后填寫完Form提交的時候,再把填寫的資料保存起來就可以了,6、當需要顯示填寫的資料的時候,根據配置表和Form對應的記錄,把相應的資料顯示在對應的控件中
補充
補充一下關于查詢這塊。基本思路和一樓一致。但是數據的篩選查詢確實是一個問題 這樣的話可以考慮加一個專門負責檢索的表
id 主鍵自增 search_id 是數據id filed_id 是 字段 的id data 就是數據值了
當前臺添加完這條數據的時候 在執行回調把 相關數據 插進這個表里 負責搜索就好了 這個表該加索引就加索引 應該夠用了
回答3:最好把數據存儲到mongo 如果存儲關系數據庫那就是個大坑,另外一定要存儲一份匯總數據,然后在單獨把表單數據存儲一份,比如我新建了10個表單那么就存儲10個集合
回答4:支持mongodb存儲,像商品屬性這些 各種顏色 各種尺寸的 用mongodb存儲相當愉快另,不是所有查詢邏輯都寫在SQL端才行,有一些邏輯提取出來寫在代碼層你會發現性能提升不少,可以少了不少join操作。
相關文章:
1. 前端 - 應該先從angularJS , vue.js , react 這些框架中的哪個開始入手?2. 用CSS3 box-sizing 屬性實現兩個并排的容器,如果想讓容器中間有間隔該如何實現3. 如何使api.douban.com域名可用,調用該域名時微信官方判斷該域名不被接受4. 域名解析在Ubuntu64 9.04計算機上的Java應用程序中不起作用所有其他軟件可以正確解析DNS5. android - weex 項目createInstanceReferenceError: Vue is not defined6. javascript - 如圖,百度首頁,查看源代碼為什么什么都沒有?7. pdo 寫入到數據庫的內容為中文的時候寫入亂碼8. PHP類封裝的插入數據,總是插入不成功,返回false;9. android - 哪位大神知道java后臺的api接口的對象傳到前端后輸入日期報錯,是什么情況?求大神指點10. 怎么在phpstudy中用phpexcel上傳數據到MYSQL?
