Re: [請益] 適合動態修改schema的db消失
※ 引述《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
02/26 09:54, 1F
→
02/26 09:55, , 2F
02/26 09:55, 2F
的確很像,
只是我看大部分推文都在討論需求端有問題,
我從技術面來提供可能的解決方法
→
02/26 12:21, , 3F
02/26 12:21, 3F
→
02/26 12:21, , 4F
02/26 12:21, 4F
推
02/26 12:30, , 5F
02/26 12:30, 5F
※ 編輯: sing10407 (123.193.9.124), 02/26/2017 12:39:47
推
02/26 13:21, , 6F
02/26 13:21, 6F
Elasticsearch 專長在全文檢索的搜尋吧
※ 編輯: sing10407 (123.193.9.124), 02/26/2017 13:55:48
推
02/26 17:00, , 7F
02/26 17:00, 7F
推
02/26 20:07, , 8F
02/26 20:07, 8F
討論串 (同標題文章)