Re: [請益] 這種資料的紀錄用怎樣的資料結構比較好?

看板Database (資料庫)作者 (Daniel Guo)時間14年前 (2011/04/26 01:13), 編輯推噓0(000)
留言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)
文章代碼(AID): #1DjQl2YR (Database)
文章代碼(AID): #1DjQl2YR (Database)