小弟目前在公司實習,公司要我建立一個門市使用的移動資產的table,移動資產分為"一般"與'資訊'類,如圖
我目前打算設計如下
第1個table 有兩個欄位分別為,"門市代碼"PK char(4)非NULL與"門市名稱"char(10)非NULL。(第1個table儲存門市的資料)
第2個table 有七個欄位分為別,
"門市代碼"PK char(4)非NULL、"序號"smallint非NULL、貨號char(12)非NULL、品名char(50)非NULL、數量int(3)非NULL、備註char(100)NULL和紀錄時間datatime非NULL。
(第2個table,儲存一般類的移動資產,以門市代碼來連結第1個table)
第3個table 有八個欄位分為別,
"門市代碼"PK char(4)非NULL、"序號"smallint非NULL、機型char(30)非NULL、品名char(50)非NULL、數量int(3)非NULL、記憶體/HDD/CPU int、備註char(100)NULL和紀錄時間datatime非NULL。
(第3個table,儲存資訊類的移動資產,以門市代碼來連結第1個table)
以上是我的想法,我想一定有很多地方需要改進,麻煩大家 謝謝。
如果是在下設計,在下也會如您一樣使用三個Table,不過,記錄的方式會不太一樣:
1.門市Table:紀錄門市資料
2.資產Table:紀錄資產資料(至於您說要區分一般類或資訊類,開一個欄位來定義即可)
3.儲存Table:記錄門市代碼、資產料號、資產異動時間、資產數量....等
如此一來,不管您是要維護門市或資產資料,或是進行資產異動追溯,是不是方便多了呢?
這只是概略性的構想,應該還有很多細部條件要考慮,但是大方向應該不變,請您參考。
qhair1234提到:
記憶體/HDD/CPU int
為什麼是int?
Table2, Table3 的 PK 定義不對,會造成門市只能有1筆一般類的移動資產與1筆資訊類的移動資產,至少要再加入另一個欄位吧。
可參考 bonb9399 的方式,資產類可以歸在同一個 Table 中,使用一個欄位來區別即可。
文字欄位格式使用Char時,存入非Big5文字時會產生錯誤. 例如:堃。