SKU બંધારણ: હાઇફન-વિભાજિત ઘટક આર્કિટેક્ચર

આ લેખ સમજાવે છે કે કેવી રીતે અમારી SKU (સ્ટોક કીપિંગ યુનિટ) સિસ્ટમ દરેક ઉત્પાદન કોન્ફિગરેશનને અનન્ય રીતે ઓળખવા માટે હાઇફન-વિભાજિત બંધારણનો ઉપયોગ કરે છે, જ્યારે શક્તિશાળી ફીચર નિષ્કર્ષણ અને ફિલ્ટરિંગને સક્ષમ કરે છે.

સમસ્યા: ઉત્પાદન કોન્ફિગરેશન્સને ઓળખવું

એક મિની પીસીમાં હજારો કોન્ફિગરેશન હોઈ શકે છે:

  • ચેસિસ: ટ્રેઓ, એસ, એચ (વિવિધ ફોર્મ ફેક્ટર)

  • બોર્ડ: N100, i5-1335U, i7-1355U (વિવિધ પ્રોસેસર)

  • RAM: 4GB, 8GB, 16GB, 32GB, 64GB

  • ફ્લેશ: 128GB, 256GB, 512GB, 1TB, 2TB

  • એડેપ્ટર: 2H (2 HDMI), 2D (2 DisplayPort), 1H1D (1 HDMI + 1 DisplayPort)

  • WiFi: W6 (WiFi 6), W6E (WiFi 6E), None

  • OS: 11P (Windows 11 Pro), U (Ubuntu), DOS (FreeDOS)

  • ઍક્સેસરીઝ: કીબોર્ડ, માઉસ, VESA માઉન્ટ, વગેરે.

3 ચેસિસ × 10 બોર્ડ × 5 RAM × 5 ફ્લેશ × 5 એડેપ્ટર × 3 WiFi × 3 OS = 33,750 સંભવિત કોન્ફિગરેશન્સ સાથે, અમને દરેકને ઓળખવા માટે વ્યવસ્થિત રીતની જરૂર છે.

ઉકેલ: હાઇફન-વિભાજિત SKU

અમે હાઇફન-વિભાજિત બંધારણનો ઉપયોગ કરીએ છીએ જ્યાં દરેક સ્થાન એક ઘટક શ્રેણીનું પ્રતિનિધિત્વ કરે છે:

Treo-N100-8-256-2H-W6-11P

આ દરેક કોન્ફિગરેશન માટે એક અનન્ય ઓળખકર્તા બનાવે છે.

SKU વિશ્લેષણ

graph LR
    SKU[Treo-N100-8-256-2H-W6-11P]
    SKU --> C[Treo
Chassis] SKU --> B[N100
Board/CPU] SKU --> R[8
RAM GB] SKU --> F[256
Flash GB] SKU --> A[2H
Adapter] SKU --> W[W6
WiFi 6] SKU --> O[11P
Windows 11 Pro]

ભાગ ક્રમ

SKU કોડમાં વ્યાખ્યાયિત નિશ્ચિત ક્રમનું પાલન કરે છે:

part_sequence = [
    Categories.CHASSIS,      # Position 0
    Categories.BOARD,        # Position 1
# ... (implementation details omitted)

દરેક SKU માં ઓછામાં ઓછા પ્રથમ 7 ઘટકો (ચેસિસ થી OS સુધી) હોવા જ જોઈએ. ઍક્સેસરીઝ વૈકલ્પિક છે.

ઘટક શ્રેણીઓ

1. ચેસિસ

ભૌતિક આવરણ અને ફોર્મ ફેક્ટર:

  • ટ્રેઓ: નવીનતમ મિની પીસી ચેસિસ (કોમ્પેક્ટ, આધુનિક ડિઝાઇન)

  • એસ: નાનું ફોર્મ ફેક્ટર (કોમ્પેક્ટ ડેસ્કટોપ)

  • એચ: પ્રમાણભૂત ફોર્મ ફેક્ટર (પરંપરાગત ડેસ્કટોપ)

ચેસિસ નક્કી કરે છે:

  • ભૌતિક પરિમાણો

  • માઉન્ટિંગ વિકલ્પો (VESA, ડેસ્કટોપ)

  • થર્મલ ડિઝાઇન (ફેનલેસ વિરુદ્ધ ફેન-કૂલ્ડ)

  • પોર્ટ લેઆઉટ

2. બોર્ડ

પ્રોસેસર સાથેનું મધરબોર્ડ:

  • N100: ઇન્ટેલ N100 (4 કોર, 3.4GHz, 6W TDP)

  • N150: ઇન્ટેલ N150 (4 કોર, 3.6GHz, 6W TDP)

  • i5-1335U: ઇન્ટેલ કોર i5 13મી પેઢી (10 કોર, 4.6GHz, 15W TDP)

  • i7-1355U: ઇન્ટેલ કોર i7 13મી પેઢી (10 કોર, 5.0GHz, 15W TDP)

બોર્ડ નક્કી કરે છે:

  • પ્રોસેસર પેઢી, શ્રેણી, મોડલ

  • કોર ગણતરી

  • મહત્તમ આવૃત્તિ

  • કેશ માપ

  • ઇન્ટિગ્રેટેડ ગ્રાફિક્સ

3. RAM

મુખ્ય મેમરી ક્ષમતા:

  • 4: 4GB DDR4

  • 8: 8GB DDR4

  • 16: 16GB DDR4

  • 32: 32GB DDR4

  • 64: 64GB DDR4

RAM એકમ વિના GB માં સ્પષ્ટ કરવામાં આવે છે.

4. ફ્લેશ

SSD સંગ્રહ ક્ષમતા:

  • 128: 128GB SSD

  • 256: 256GB SSD

  • 512: 512GB SSD

  • 1024: 1TB SSD (1024GB)

  • 2048: 2TB SSD (2048GB)

ફ્લેશ એકમ વિના GB માં સ્પષ્ટ કરવામાં આવે છે.

5. એડેપ્ટર

ડિસ્પ્લે આઉટપુટ કોન્ફિગરેશન:

  • 2H: 2× HDMI પોર્ટ

  • 2D: 2× DisplayPort

  • 1H1D: 1× HDMI + 1× DisplayPort

  • 1H1V: 1× HDMI + 1× VGA

  • 3H: 3× HDMI પોર્ટ

એડેપ્ટર ઉપલબ્ધ ડિસ્પ્લે આઉટપુટ નક્કી કરે છે.

6. WiFi

વાયરલેસ કનેક્ટિવિટી:

  • W6: WiFi 6 (802.11ax) + બ્લુટૂથ 5.2

  • W6E: WiFi 6E (802.11ax 6GHz) + બ્લુટૂથ 5.2

  • None: કોઈ વાયરલેસ નથી (ફક્ત ઇથરનેટ)

7. OS

ઓપરેટિંગ સિસ્ટમ:

  • 11P: માઈક્રોસોફ્ટ Windows 11 Pro

  • U: Ubuntu Linux 24.04 LTS

  • DOS: FreeDOS (OS વિના)

  • Thinux: Thinvent® Thinux™ એમ્બેડેડ Linux

8. ઍક્સેસરીઝ (વૈકલ્પિક)

વધારાના ઘટકો:

  • KM: કીબોર્ડ + માઉસ કોમ્બો

  • MK: મિકેનિકલ કીબોર્ડ

  • VESA: VESA માઉન્ટ બ્રેકેટ

  • સ્ટેન્ડ: એડજસ્ટેબલ સ્ટેન્ડ

બહુવિધ ઍક્સેસરીઝ જોડી શકાય છે: KM-VESA

SKU માન્યતા

બધા સંયોજનો માન્ય નથી. અમે સુસંગતતા નિયમોનો ઉપયોગ કરી SKU માન્ય કરીએ છીએ:

SKU ફંક્શન તપાસો

def check_sku(sku: str) -> bool:
    partids = sku.split("-")
    if len(partids) < len(part_sequence):
# ... (implementation details omitted)

સુસંગતતા મર્યાદાઓ

ઘટકો સ્પષ્ટ કરી શકે છે કે તેઓ અન્ય કયા ઘટકો સાથે સુસંગત છે:

ઉદાહરણ: ટ્રેઓ ચેસિસ ચોક્કસ બોર્ડને મંજૂરી આપે છે

{
  "Treo": {
    "allows": {
      "Board": ["N100", "N150", "i5-1335U"],
      "RAM": ["4", "8", "16", "32"],
      "Adapter": ["2H", "1H1D"]
    }
  }
}

આ "Treo-i7-64-2048-3H" જેવા અમાન્ય સંયોજનોને રોકે છે (ટ્રેઓ i7 અથવા 3H એડેપ્ટરને સપોર્ટ કરતું નથી).

SKU વિસ્તરણ

અમે SKU ને માનવ-વાંચનીય નામોમાં રૂપાંતરિત કરીએ છીએ:

def expand_sku(sku: str) -> str:
    part_ids = sku.split("-")
    part_names = [
        productdb[part_sequence[i].value][part_id]["external"] 
# ... (implementation details omitted)        
    ]

ઉદાહરણ:

ઇનપુટ:  Treo-N100-8-256-2H-W6-11P
આઉટપુટ: ટ્રેઓ મિની પીસી, ઇન્ટેલ N100, 8GB DDR4, 256GB SSD, 2× HDMI, WiFi 6, Windows 11 Pro

external ફીલ્ડમાં દરેક ઘટક માટે ગ્રાહક-સામેનું નામ હોય છે.

ફીચર નિષ્કર્ષણ

SKU બંધારણ સ્વચાલિત ફીચર નિષ્કર્ષણને સક્ષમ કરે છે:

ફીચર ક્રમ

અમે નિષ્કર્ષણ માટે ફીચર્સનો ક્રમ વ્યાખ્યાયિત કરીએ છીએ:

feature_sequence = {
    "Generation": {"Unit": "", "Heading": "Processing"},
    "Series": {"Unit": "", "Heading": "Processing"},
# ... (implementation details omitted)

દરેક ફીચરમાં હોય છે:

  • એકમ: માપન એકમ (GB, GHz, Mbps)

  • હેડિંગ: જૂથ બનાવવા માટે શ્રેણી (પ્રોસેસિંગ, ડિસ્પ્લે, કનેક્ટિવિટી)

ફીચર્સ નિષ્કર્ષણ

SKU માં દરેક ઘટક માટે, અમે તેની ફીચર્સ નિષ્કર્ષિત કરીએ છીએ:

# Board: N100
{
    "Generation": "12th",
# ... (implementation details omitted)

આ ફીચર્સ ઉત્પાદનનો સંપૂર્ણ ફીચર સેટ બનાવવા માટે તમામ ઘટકોમાં એકત્રિત કરવામાં આવે છે.

આ બંધારણના ફાયદા

1. અનન્ય ઓળખ

દરેક કોન્ફિગરેશનનો અનન્ય SKU હોય છે. કોઈ અસ્પષ્ટતા નથી.

2. માનવ-વાંચનીય

SKU માનવો દ્વારા વાંચી શકાય તેવું છે:

  • Treo-N100-8-256-2H-W6-11P સ્પષ્ટ રીતે કોન્ફિગરેશન બતાવે છે

  • તે શું છે તે સમજવા માટે ડેટાબેસ જોવાની જરૂર નથી

3. સૉર્ટ કરી શકાય તેવું

SKU કુદરતી રીતે સૉર્ટ થાય છે:

  • Treo-N100-8-256-2H-W6-11P

  • Treo-N100-16-512-2H-W6-11P

  • Treo-i5-16-512-2H-W6-11P

SKU દ્વારા સૉર્ટ કરવાથી સમાન કોન્ફિગરેશન્સ એકસાથે જૂથબદ્ધ થાય છે.

4. ફિલ્ટર કરી શકાય તેવું

અમે કોઈપણ ઘટક દ્વારા ફિલ્ટર કરી શકીએ