用php怎麼做以下這種需求?
01-15
產品給了份原型圖我,大概意思就是後台導入excel表數據到資料庫,前台輸入關鍵字進行查詢。問題在於每張excel表的表頭都不一樣,欄位不統一(難道每導入一張excel表就在資料庫新建一張數據表嗎?這樣感覺不大合理),求大神指點一下思路
公司大概是想做成以下這種效果http://219.135.157.143/gdyj/sjwz/Main.faces?menuId=1navId=1
EAV行轉列,大意就是:
id, form_id, name, value
id是自增編號,作為主鍵.
form_id是表單編號.
name是表單中的欄位名.
value是表單中的欄位值.
form_id和name聯合做成唯一鍵.
用mongodb存儲試試
首先要把業務數據源進行分析,源數據建立關聯模型轉換為資料庫欄位,根據業務需求和數據源,分成多個表來存儲,表之間通過欄位關聯,如果數據源之間沒任何關聯,建議把excel表格內容轉化為文本,使用nosql集合存儲,配合全文搜索引擎,前端需要展示的時候,還原成表格。
一種方法已經有人回答了,就是轉成列存儲。還有一種方法就是你懷疑的方法,每個excel文件創建一個表,為什麼不可以呢?看你的舉例,目測你這種excel文件不會很多。這種好處是資料庫可視效果好,以後需要修改點啥直接sql操作方便。而且用thinkphp的話表可以直接操作插入刪除瀏覽等操作。
很多cms都能實現自定義模型的功能,可以參考一下,這是很基本的需求。
如果想更智能可以搜索 EVA 模型。推薦閱讀:
※如何處理iOS開發中 APP端資料庫和網站資料庫選擇和同步問題?
※免費php網店(商城)系統有哪些?
※如何從PHP過渡到golang?