iT邦幫忙

0

MSSQL Table建立,請不吝嗇給小弟意見

小弟目前在公司實習,公司要我建立一個門市使用的移動資產的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)

以上是我的想法,我想一定有很多地方需要改進,麻煩大家 謝謝。

看更多先前的討論...收起先前的討論...
專業程式師,會適當利用空白,跳行,分隔線等各種輔助手段,
提高文件的可讀性與正確性.
參考一下.
三個問題:

1.想一下,為什麼要分成兩個 table
如果有一天出現「業務類」移動資產
是否要再加一個 table ?

2.想一下,這 table 到底是「基本資料檔」還是「交易檔」
「數量」欄位是否適合放在這個 table 中

3.PK 的定義
第 2,3 個 table 應該不會只用「門市代碼」做 PK
否則第 2,3 個 table
都會是「每個門市只有一筆移動資產資料」
那就搞笑了
qhair1234 iT邦新手 5 級 ‧ 2015-01-13 10:21:41 檢舉
謝謝你的提醒!!我會改進的!
qhair1234 iT邦新手 5 級 ‧ 2015-01-13 10:31:21 檢舉
謝謝你,我再想想!!
4
bonb9399
iT邦新手 2 級 ‧ 2015-01-13 10:03:10
最佳解答

如果是在下設計,在下也會如您一樣使用三個Table,不過,記錄的方式會不太一樣:

1.門市Table:紀錄門市資料
2.資產Table:紀錄資產資料(至於您說要區分一般類或資訊類,開一個欄位來定義即可)
3.儲存Table:記錄門市代碼、資產料號、資產異動時間、資產數量....等

如此一來,不管您是要維護門市或資產資料,或是進行資產異動追溯,是不是方便多了呢?
這只是概略性的構想,應該還有很多細部條件要考慮,但是大方向應該不變,請您參考。

qhair1234 iT邦新手 5 級 ‧ 2015-01-13 10:32:28 檢舉

謝謝您提供的意見! 謝謝

0
外獅佬
iT邦大師 1 級 ‧ 2015-01-12 22:44:20

qhair1234提到:
記憶體/HDD/CPU int

為什麼是int?

看更多先前的回應...收起先前的回應...
總裁 iT邦好手 1 級 ‧ 2015-01-12 22:48:07 檢舉

整數...冷

外獅佬 iT邦大師 1 級 ‧ 2015-01-12 23:03:35 檢舉

硬的.....冷冷

summertw iT邦好手 1 級 ‧ 2015-01-13 09:00:38 檢舉

RAM/HDD,都可以以容量來記錄,但是CPU....核心數量嗎????

外獅佬 iT邦大師 1 級 ‧ 2015-01-13 09:08:18 檢舉

容量用整數記錄...
那...512應該是512MB還是512GB??疑惑

wiselou提到:
那...512應該是512MB還是512GB

512T冷

外獅佬 iT邦大師 1 級 ‧ 2015-01-13 09:14:38 檢舉

這個容量,拿來備份泰大的D槽應該夠了冷冷

qhair1234 iT邦新手 5 級 ‧ 2015-01-13 09:14:42 檢舉

抱歉抱歉,我腦子那時候只想著容量大小就直覺數字了XD 我會把它修改為 char(20),謝謝各位大大的提醒,那我有地方還需要注意的嗎?

0
丹尼爾
iT邦研究生 2 級 ‧ 2015-01-13 11:07:16

Table2, Table3 的 PK 定義不對,會造成門市只能有1筆一般類的移動資產與1筆資訊類的移動資產,至少要再加入另一個欄位吧。
可參考 bonb9399 的方式,資產類可以歸在同一個 Table 中,使用一個欄位來區別即可。
文字欄位格式使用Char時,存入非Big5文字時會產生錯誤. 例如:堃。

筆記

我要發表回答

立即登入回答