2010-04-14 24 views
1

我正在經歷建立一個CMS的練習,它將組織我的僱主在每次獲得新的銷售訂單時生成的大量通用文檔。每一個新的銷售訂單得到一個5位數字(12222,12223,122224等...),但在內部,我們已申請一個層次結構,以這些數字:如何構造數據...順序或分層?

+ 121XX 
|--01 
|--02 
+ 122XX 
|--22 
|--23 
|--24 

在我的表銷售訂單,是它更好地使用5位數字作爲ID並填充,或者使用我們在定期對話中提到作業時使用的層次結構會更好嗎?在我看來,不按順序填充數據的唯一好處似乎是格式化數據,但這聽起來不像是通過額外工作的足夠理由。

感謝

+5

對於賦予數字標識符中子字段含義的人有一個特殊的地獄。 – 2010-04-14 09:36:33

+0

你真的只希望能獲得最多99,999個訂單......? – 2010-04-14 19:23:03

回答

0

這看起來像一個系統在機櫃中組織操作系統目錄或馬尼拉文件而不是數據模型。所以問題是,這種兩層結構的價值是什麼?是否有任何屬性或功能附加到較高檔次(121XX等)?如果不是,這將成爲一個純粹的顯示問題,應該這樣處理。

另一方面,我沒有看到將(121XX,01)作爲組合業務密鑰並使用代理密鑰作爲主鍵的實際危害。有一個需要注意的問題:如果銷售量增加,您可能會達到10萬個訂單,此時訂單號將點擊六位數。在大多數數據庫中,自然排序順序爲:

100XX 
1000XX 
101XX 
0

「有一個人誰賦予意義的數字標識符子字段保留一個特殊的地獄。」

雖然我當然可以理解並重視那句話,但我不得不補充說,如果生意是這樣的,恰巧是用於訂單的編號系統,並且如果碰巧發生這種情況,那麼業務確實對子字段有意義,那麼實施支持該業務的自動化系統的IT人員幾乎沒有選擇餘地,只能依靠該號碼系統。

(這些IT人可能會指出這樣的系統的缺點,但它不屬於IT人決定什麼業務東西應該和不應該的樣子。)

+0

我從來沒有想過自己是一個「IT」人,但作爲系統分析師,我經常不得不告訴商業人員,他們的手動系統如果不對他們的實踐進行重大改變就無法進行計算機化 - 這就是我的收入。 – 2010-04-15 11:17:59

1

絕對應該使用5位數字作爲主鍵。有時,明顯的答案是簡單的答案。