用php怎麼做以下這種需求?

產品給了份原型圖我,大概意思就是後台導入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?

TAG:計算機網路 | ThinkPHP | PHP開發 |