2010-04-18 16 views
8

मैं कुछ उपस्थिति सॉफ्टवेयर लिख रहा हूं। प्रत्येक सदस्य के पास एक बारकोड वाला आईडी कार्ड होगा जिसका उपयोग वे ईवेंट में साइन इन करने के लिए करेंगे। बारकोड फ़ील्ड को मेरे डेटाबेस में कब तक होना चाहिए? मैं कोड 39 और कोड 128 बारकोड स्वीकार करना चाहता हूं। मुझे पता है कि ये परिवर्तनीय लंबाई कोड हैं, तो मुझे अधिकतम लंबाई निर्धारित करने के लिए क्या करना चाहिए?बारकोड फ़ील्ड की लंबाई

धन्यवाद!

संपादित करें: मेरे ग्राहक विभिन्न तृतीय-पक्ष बारकोड प्रिंटिंग टूल का उपयोग करेंगे।

उत्तर

9

कोड 128 128 ASCII वर्ण कर सकते हैं तो अधिकतम लंबाई 128 तक सेट करें (या उच्चतर, यह वास्तव में कोई फर्क नहीं पड़ता)।

मुझे अंतिम बयान स्पष्ट करने दें। परिवर्तनीय पाठ फ़ील्ड प्रति बाइट 1 बाइट (या यूनिकोड प्रकार फ़ील्ड के लिए अधिक उपयोग करेंगे, लेकिन अब उन लोगों को अनदेखा करें) और कुछ ओवरहेड का उपयोग करेंगे। उस ओवरहेड डेटाबेस के आधार पर 1-4 बाइट्स या 16 या उससे अधिक के रूप में कम हो सकता है।

लेकिन मुद्दा यह है कि अगर आप एक VARCHAR(128) क्षेत्र में 100 वर्ण या एक VARCHAR(1000) क्षेत्र की दुकान यह अभी भी अंतरिक्ष की ठीक उसी राशि का उपयोग करता है।

आपके द्वारा चलाए जाने वाला एकमात्र मुद्दा पंक्ति सीमा है। यह भी डेटाबेस निर्भर है। कुछ उदाहरण के लिए पूरी पंक्ति केवल आकार में 64K तक ले सकती है, इसलिए सभी आकारों का योग उस से अधिक नहीं हो सकता है। इसके अलावा इससे कोई फर्क नहीं पड़ता।

+8

अगर मैं गलत हूं, तो मुझे सही करें, लेकिन यह [विकी लेख] (http://en.wikipedia.org/wiki/Code_128) कहता है कि कोड 128 सभी 128 एसीआईआई अक्षरों को एन्कोड कर सकता है, न कि यह 128 वर्ण लंबा है । हमारे डीबी में बारकोड 25 वर्ण लंबा हैं और हमें कोई शिकायत नहीं मिली है। – tkerwood

+1

@ टकरवुड आप सही हैं। कोड 128 वर्णों की संख्या की सीमा नहीं है, लेकिन चरित्र सेट है जिसे एन्कोड किया जा सकता है। बाकी का जवाब, पुनः: डेटाबेस में वर्कर आकार सही है। – Sean

+1

अब 128 वर्ण सीमा के बारे में [बहुत सारे संदेह] हैं (http://stackoverflow.com/questions/2660560/barcode-field-length/2660568#comment29063478_2660568) (मेरा सहित)। तो हो सकता है कि यह आपके वक्तव्य को सही करने या उस 128 वर्ण सीमा के लिए स्रोत प्रदान करने का समय हो। – miroxlav

4

ये प्रारूप आसानी से अंक के साथ एन्कोड कर सकते हैं, निश्चित रूप से आपको एक अद्वितीय आईडी की आवश्यकता से अधिक। तो सवाल सिर्फ इतना नहीं है, आपकी आईडी कब तक हैं? क्या 10 अंक बहुत हैं? फिर 10 अक्षर। या यदि वे संख्यात्मक आईडी हैं, तो आपको वर्णों की एक स्ट्रिंग के रूप में भी स्टोर नहीं करना चाहिए। एक संख्यात्मक एसक्यूएल प्रकार का प्रयोग करें।

5

सिद्धांत में कोड 128 बगैर किसी अड़चन, लेकिन उदाहरण के लिए, लागू विनिर्देशों (जीएस 1) में से एक सेट व्यावहारिक सीमा:

GS1-128 है 48 वर्ण (विशेष वर्ण को छोड़कर) या 6.5 की एक अधिकतम की एक अधिकतम "। (शांत क्षेत्र सहित) सीमा पर जो भी पहले हो आधारित है

स्रोत:।। GS1-128 Symbol Specifications

+0

आपके द्वारा संदर्भित सीमाएं माता-पिता सिम्बोलॉजी के बजाय कोड 128 के लिए जीएस 1-128 एप्लिकेशन मानक पर लागू होती हैं जो ऐसी बाधाओं को लागू नहीं करती है। –

+1

@TerryBurton हाँ, लेकिन 9-फुट-चौड़े बारकोड स्कैनिंग की शुभकामनाएं। – Beejor

+0

@ बिजर यह अधिक व्यापक रूप से यहां दिया गया है: http://stackoverflow.com/a/31359916/2568535 –

-1

कोड 39 43 पात्रों के लिए प्रतिबंधित है पूर्ण ASCII कोड में 39 प्रतीक 0-9, AZ,"। " , "-" और स्थान कोड 39 में उनके प्रतिनिधित्व के समान हैं।

+1

43 * इसके वर्णमाला में अलग * वर्ण। लंबाई से असंबंधित। –

संबंधित मुद्दे