java - 動態(tài)表單應(yīng)該如何設(shè)計數(shù)據(jù)庫?
問題描述
需求是這樣的
在后臺管理界面錄入表單信息,規(guī)定有哪些表單 (可以增刪)
在前端顯示哪些表單的可以填寫
最后把填寫的表單(產(chǎn)生的真實數(shù)據(jù))存入數(shù)據(jù)庫
最后填入的數(shù)據(jù)需要能夠方便查詢,排序,過濾的數(shù)據(jù)
我在網(wǎng)上找了挺多資料都不太符合我的需求。 有沒有設(shè)計大神提供一下設(shè)計的思路!!!
問題解答
回答1:1、先定義一張控件表,如單行文本,多行文本,單選,多選,時間等2、再定義一張配置表,用來定義一個Form有哪些字段,以及字段名字(用來顯示,如姓名,性別),控件類型,字段默認(rèn)值,字段長度,是否必填等信息3、然后在后臺把對應(yīng)配置表添加的記錄存到另一張記錄表,記錄表里存放的可能有多個單行文本,多個單選等記錄(多余)4、接著根據(jù)記錄表的信息顯示Form,5、最后填寫完Form提交的時候,再把填寫的資料保存起來就可以了,6、當(dāng)需要顯示填寫的資料的時候,根據(jù)配置表和Form對應(yīng)的記錄,把相應(yīng)的資料顯示在對應(yīng)的控件中
補充

補充一下關(guān)于查詢這塊。基本思路和一樓一致。但是數(shù)據(jù)的篩選查詢確實是一個問題 這樣的話可以考慮加一個專門負(fù)責(zé)檢索的表

id 主鍵自增 search_id 是數(shù)據(jù)id filed_id 是 字段 的id data 就是數(shù)據(jù)值了
當(dāng)前臺添加完這條數(shù)據(jù)的時候 在執(zhí)行回調(diào)把 相關(guān)數(shù)據(jù) 插進這個表里 負(fù)責(zé)搜索就好了 這個表該加索引就加索引 應(yīng)該夠用了
回答3:最好把數(shù)據(jù)存儲到mongo 如果存儲關(guān)系數(shù)據(jù)庫那就是個大坑,另外一定要存儲一份匯總數(shù)據(jù),然后在單獨把表單數(shù)據(jù)存儲一份,比如我新建了10個表單那么就存儲10個集合
回答4:支持mongodb存儲,像商品屬性這些 各種顏色 各種尺寸的 用mongodb存儲相當(dāng)愉快另,不是所有查詢邏輯都寫在SQL端才行,有一些邏輯提取出來寫在代碼層你會發(fā)現(xiàn)性能提升不少,可以少了不少join操作。
相關(guān)文章:
1. 我在centos容器里安裝docker,也就是在容器里安裝容器,報錯了?2. docker-compose中volumes的問題3. docker不顯示端口映射呢?4. golang - 用IDE看docker源碼時的小問題5. 在windows下安裝docker Toolbox 啟動Docker Quickstart Terminal 失敗!6. docker容器呢SSH為什么連不通呢?7. javascript - 最近用echarts做統(tǒng)計圖時遇到兩個問題!!8. mac里的docker如何命令行開啟呢?9. javascript - 連續(xù)點擊觸發(fā)mouseleave事件10. 關(guān)docker hub上有些鏡像的tag被標(biāo)記““This image has vulnerabilities””

網(wǎng)公網(wǎng)安備