看板 Database 關於我們 聯絡資訊
現在有一個網路售貨系統,內有的商品類別五花八門 毎個類別都可能擁有更細的子類別,分支度無法事先估計 商品擁有多於一種的類別,可能只屬於某類別卻不屬於其子類別 子類別可能擁有多於一種的父類別 最複雜的狀態可能出現以下可能: 電腦─┬→桌電→IBM,Apple....etc ├→筆電→...........    └→平板電腦→A廠牌,B廠牌     ↗ 手機─┼→智慧型手機    └→一般手機 超值優惠┬→八折商品     ├→五折商品     └→免費贈品 A商品可能屬於"平板電腦"但非A廠牌或B廠牌 所以當使用者點擊"平板電腦","手機","電腦"類別時都會出現A商品 但點擊A廠牌時不會出現A商品 而A商品除了"平板電腦"類別以外還可能擁有"八折商品"這個類別 所以在點擊"八折商品"或者"超值優惠"時也可能會出現 這些類別被要求能從後台隨意新增修改,所以不能用寫在檔案中的方式 過往我在遇到這種超複雜的資料結構時都是把資料變成json或者xml方式存到資料庫 但這裡會變成"需要把所有資料讀出解析才有辦法知道某某類別會出現哪些商品" 效率上行不通 目前想到的暫時解法是以兩個Table儲存類別與類別關係 Table:類別     Table:類別關係 ID Type       Parent Child 1 超值優惠     1 2 2 八折商品     3    5 3 手機       4    5 4 電腦       5 6 5 平板電腦     5 7 6 A廠牌 7 B廠牌 要記錄商品的類別時則以特殊結構儲存(比如按階層順序儲存的CVS格式) 再透過字串比對的方式去找出哪些類別有哪些商品(LIKE '%(5)%') 但這個方法的缺點是....無論是要秀出"全商品類別一覽",或者後台要編輯全類別時 處理起來都會大費周章,要花許多功夫才能轉化為能夠理解的形式 請問在關聯式資料表資料庫下遇到這類複雜結構時 有更好的處理方式嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.46.134.109
mrbigmouth:最大的缺點應該是..每次改變類別時都要重新建置全類別 12/06 13:36
mrbigmouth:暫時想不到辦法單純只改單一一條關係... 12/06 13:37
evernever:想問一下是MSSQL嗎? 12/06 17:55
mrbigmouth:是MySQL... 12/06 17:59
chrisQQ:用 tag 的方法來做…? 12/06 18:04
mrbigmouth:詳細希望? 12/06 20:29
mrbigmouth:還沒辦法的話只好不靠mysql 自建物件導向式儲存進檔案 12/06 21:24
mrbigmouth:反正都是讀/寫類別時需要耗資源.... 12/06 21:25