[英]Database design for barcode ranges
我正在為我們的倉庫開發運輸系統。 基本上,我要完成的工作是從條形碼范圍中提取一個數字,並將其分配給運輸訂單。
范圍是由我們的合作伙伴信使定期給予他們通常不是連續的,如9000000-9009999
, 9020000-9029999
。 范圍內的每個數字只能使用一次。
當前范圍在腳本中進行了硬編碼,當前索引存儲在文件中。 (舊版實施)
但是我覺得有一個接口,即使非程序員也可以管理范圍,監視每個范圍的狀態(例如,哪個當前處於“活動狀態”,當前索引是什么,等等),這是適當的。 當當前范圍用完時,它應自動切換到下一個可用范圍。 以下是我想到的UI設計。
您認為將范圍數據存儲在數據庫中是個好主意嗎? 如果是這樣,我應該如何設計數據庫表?
需要考慮的其他一些事項是:
我相信您需要對事務有一個更高層次的了解。
關鍵是GS1系統,以前稱為EAN(我使用它已有20多年的歷史了。)
重要的問題是您不應讓您的貨件號碼由外部機構決定。 如果您說要保留7年的裝運詳細信息,而他們決定在3年后回收編號,那么您將遇到數據問題。 同樣,如果您擁有多個貨運代理公司(或在將來承辦另一家貨運代理公司,或者現有的貨運代理公司被拆分成部分或出售或以其他方式出售),那么在THEIR系統發生變更時,您仍然會遇到數據問題。
(並且適用於您的組織未直接控制的所有數據)
EAN方式是通過使用SSCC-串行運輸容器代碼。 這是分配給對象的18位代碼,可唯一標識該對象。 它的標稱壽命為三年,因此不應更頻繁地重新發行。
SSCC是根據國際公認的結構生產的,並編碼為“ code 128”條形碼(因此通常稱為GS1-128或EAN-128),其條形碼特征為[fnc1]-國際上公認的表示“這是遵循EAN-128格式的條形碼”。 其余字符為:
00
-SSCC的AI(有多種用途的代碼。“ 00”表示“ SSCC”。它實際上是一個應用程序標識符 -盡管甚至連條形碼打印機制造商都認為它構成了“ 20位代碼”。
1 digit
-以前,“ 3”是“內部托盤”,“ 4”是“外部托盤”。 由於一個人經常成為另一個人,因此該系統很快就被放棄了,但傳說仍然存在-有些人會錯誤地堅持認為前導數字必須為“ 3”。
7-9 digits
-國家代碼+組織代碼。 由控制組織分配並許可給使用成員組織。
9-7 digits
-使用會員組織發布的個人發貨編號。
1 digit
-根據發布的算法產生的校驗數字,通常由打印機固件計算得出。
因此,GS1成員組織(即您的組織)會自行決定分配第一和倒數第二組數字。
該系統可用於將貨物運送到組織外部,也可用於跟蹤組織內部的貨物。
在所有的可能性,你的托運人分配它們的數量的一個子集給你,因為他們通常與不屬於GS1成員小企業做的。 不幸的是,執行此任務的店員更喜歡以相同的方式對待所有客戶,因此,傳說您必須使用他們的系統。 如果這個想法扎根在他們的 IT猴子的肥沃頭腦中,那么他們可能已經在這種假設下建立了自己的系統。
如果他們的 IT系統是由專業人員建立的,那么他們將能夠接受任何符合規定的SSCC-您只需發送,然后將發出附有您的編號的貨件清單,他們的軟件將在打印機打印時根據您的打印機產生的標簽對它進行驗證。提貨。
您確實需要與他們的IT部門討論他們的要求。
這意味着,你根本不需要在所有使用它們的數量-您可以使用該系統,因為它的設計,使用你的號碼了, 你有控制權。
如果不相鄰的范圍屬於同一個Entity,則一個表將具有Entities,其中包括entity_id
。 另一個表將包含條形碼范圍(開始和結束),以及entity_id
。
您將需要代碼來驗證您沒有創建重疊范圍。 並處理刪除子范圍。
如果您希望擁有數百萬個范圍,那么建議您改寫我的IP地址塊代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.