Re: [請益] 這種資料的紀錄用怎樣的資料結構比較好?
看板Database (資料庫)作者danielguo (Daniel Guo)時間14年前 (2011/04/26 01:13)推噓0(0推 0噓 0→)留言0則, 0人參與討論串2/3 (看更多)
※ 引述《JYHuang (夏天到了,冷不起來了說)》之銘言:
: 主要結構大至是這樣
: 主元件 (object)
: ID 名稱 ..
: A xxx
: B yyy
: 零件(parts)
: ID 名稱 規格 ...
: 001 p-1
: 002 p-2
: 003 p-3
: 零件是屬於主元件的配件,會被變更到不同的主元件上。也會新增或淘汰。
: 目前想要紀錄零件的使用資料,想到的有兩種紀錄方式
: 1:使用紀錄 (rec)
: 紀錄ID 日期 時數(min) 主元件ID 零件ID
: 001 20110401 50 A 001
: 001 20110401 50 A 002
: 001 20110401 50 A 003
: 002 20110402 100 B 002
: 002 20110402 100 B 003
: 這樣的話,要統計零件被使用的資料會比較方便。
: 可是如果零件一多的話,資料量會比較龐大。資料的編輯也會比較麻煩。
: 2:使用紀錄 (rec)
: 紀錄ID 日期 時數(min) 主元件ID 零件集合
: 001 20110401 50 A 001,002,003
: 002 20110402 100 B 002,003
: 這樣資料量雖然會比較少,編輯時把零件集合那裡讀出來再蓋過去就可以了。
: 可是要統計零件的使用紀錄上似乎會比較麻煩。
多值欄位, 不建議使用
: 3:使用紀錄 (rec) + 集合資料(collect)
: 紀錄ID 日期 時數(min) 零件集合ID
: 001 20110401 50 01
: 002 20110402 100 02
: 集合ID 主元件ID 零件ID
: 01 A 001
: 01 A 002
: 01 A 003
: 02 B 002
: 02 B 003
: 這樣的話,統計會方便點、資料量也會比較少。
: 可是集合的編輯似乎會比較麻煩點,可能會變成同樣的集合重複的出現。
: 看起來也只是把1的方法更正規化一點。
: 請問是否還可以有更理想的資料結構呢?
3 比較適合, 不過這邊欄位不對, 應該是
紀錄ID 日期 時數(min) 主元件ID 零件集合ID
001 20110401 50 A 01
002 20110402 100 B 02
集合ID 零件ID
01 001
01 002
01 003
02 002
02 003
設定主鍵為 (集合ID, 零件ID), 這樣便一定不會重複 (當然應用程式應該先檢查)
3 更正了之後基本上和 2 儲存的資料量相同
除非有其他額外欄位要考慮, 不然應該這樣用沒錯
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 71.93.105.54
※ 編輯: danielguo 來自: 71.93.105.54 (04/26 01:13)
討論串 (同標題文章)
Database 近期熱門文章
PTT數位生活區 即時熱門文章