Re: [請益] 適合動態修改schema的db消失

看板Soft_Job作者時間7年前 (2017/02/26 01:48), 7年前編輯推噓4(404)
留言8則, 6人參與, 最新討論串2/2 (看更多)
※ 引述《asleepme (500年沒換暱稱了)》之銘言: : 自己想做一個小專案,目的是能根據不同的需求動態建立db schema : ex: : A子想建立一個跟餐廳有關的db,欄位有 名稱、地址、電話 : 隔天,A子又要建立另一個db是關於帳務的,欄位有 日期、金額、類別 : B子也想建立自己的餐廳db,但是欄位 除了 名稱、地址、電話,還想有GPS : 所以要讓user自己決定db schema : 目前作法是一個db裡面先放相對應的schema name -> schema : 之後要操作的時候就知道怎麼做 : 但是這個作法code/db看起來會很混亂 : 不知道有沒有更好的作法?或是有適合這種需求的db? : 如果能直接方便動態挑戰schema更好 : 是不是nosql會比較適合呢? : 謝謝大家~ 先把共用欄位抽出來變成一張主表: 主表:MainTable 欄位: MainTableId ,名稱, 地址, 電話, 金額 123 大平台餐廳 35-1 09123 5,000 666 子瑜餐廳 87 09321 999,999 再來將要客製化的用類似 key-value 方式存 子表:CustomTable 欄位: 項目, 值(varchar) MainTableId GPS (23.546162,120.6402133) 123 有酒吧 true 666 有廁所 true 123 要注意的是如果有要一次撈多筆餐廳時,必要資料都要存在 MainTable, sql 才會簡潔,資料才好操作; 這樣設計的缺點是在於一些 sql 涵式對於 CustomTable 會很難操作,例如 Sum 等等 若撈單筆,就除了 MainTable 撈一次之外,再去 CustomTable where MainTableId=123 即可 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.193.9.124 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1488044906.A.D3B.html

02/26 09:54, , 1F
聽描述是製作幫使用者產生table含欄位的系統。
02/26 09:54, 1F

02/26 09:55, , 2F
方向比較偏整合,不是針對單一問題的客製化。
02/26 09:55, 2F
的確很像, 只是我看大部分推文都在討論需求端有問題, 我從技術面來提供可能的解決方法

02/26 12:21, , 3F
推key value的方式,如果變成超多這種東西的話可以考慮
02/26 12:21, 3F

02/26 12:21, , 4F
換NOSQL
02/26 12:21, 4F

02/26 12:30, , 5F
PostgreSQL JSONB
02/26 12:30, 5F
※ 編輯: sing10407 (123.193.9.124), 02/26/2017 12:39:47

02/26 13:21, , 6F
Elasticsearch?
02/26 13:21, 6F
Elasticsearch 專長在全文檢索的搜尋吧 ※ 編輯: sing10407 (123.193.9.124), 02/26/2017 13:55:48

02/26 17:00, , 7F
mongodb
02/26 17:00, 7F

02/26 20:07, , 8F
用nosql的吧 會比較有彈性
02/26 20:07, 8F
文章代碼(AID): #1OiSDgqx (Soft_Job)
文章代碼(AID): #1OiSDgqx (Soft_Job)