SKU ഘടന: ഹൈഫൻ വേർതിരിച്ച ഘടക ആർക്കിടെക്ചർ
ഈ ലേഖനം എങ്ങനെയാണ് ഞങ്ങളുടെ SKU (സ്റ്റോക്ക് കീപ്പിംഗ് യൂണിറ്റ്) സിസ്റ്റം ഓരോ ഉൽപ്പന്ന കോൺഫിഗറേഷനും അദ്വിതീയമായി തിരിച്ചറിയുന്നതിനും ശക്തമായ ഫീച്ചർ എക്സ്ട്രാക്ഷനും ഫിൽട്ടറിംഗും പ്രാപ്തമാക്കുന്നതിനും ഒരു ഹൈഫൻ വേർതിരിച്ച ഘടന ഉപയോഗിക്കുന്നത് എന്ന് വിശദീകരിക്കുന്നു.
പ്രശ്നം: ഉൽപ്പന്ന കോൺഫിഗറേഷനുകൾ തിരിച്ചറിയൽ
ഒരു മിനി പിസിക്ക് ആയിരക്കണക്കിന് കോൺഫിഗറേഷനുകൾ ഉണ്ടാകാം:
-
ചാസിസ്: ട്രിയോ, എസ്, എച്ച് (വ്യത്യസ്ത ഫോം ഫാക്ടറുകൾ)
-
ബോർഡ്: N100, i5-1335U, i7-1355U (വ്യത്യസ്ത പ്രോസസ്സറുകൾ)
-
റാം: 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), ഇല്ല
-
OS: 11P (Windows 11 Pro), U (Ubuntu), DOS (FreeDOS)
-
ആകസ്സറികൾ: കീബോർഡ്, മൗസ്, VESA മൗണ്ട്, മറ്റുള്ളവ.
3 ചാസിസ് × 10 ബോർഡുകൾ × 5 റാം × 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, ഡെസ്ക്ടോപ്പ്)
-
തെർമൽ ഡിസൈൻ (ഫാൻലെസ് vs ഫാൻ-കൂൾഡ്)
-
പോർട്ട് ലേഔട്ട്
2. ബോർഡ്
പ്രോസസ്സർ ഉള്ള മദർബോർഡ്:
-
N100: ഇന്റൽ N100 (4 കോർ, 3.4GHz, 6W TDP)
-
N150: ഇന്റൽ N150 (4 കോർ, 3.6GHz, 6W TDP)
-
i5-1335U: ഇന്റൽ കോർ i5 13th Gen (10 കോർ, 4.6GHz, 15W TDP)
-
i7-1355U: ഇന്റൽ കോർ i7 13th Gen (10 കോർ, 5.0GHz, 15W TDP)
ബോർഡ് തീരുമാനിക്കുന്നത്:
-
പ്രോസസ്സർ ജനറേഷൻ, സീരീസ്, മോഡൽ
-
കോർ എണ്ണം
-
പരമാവധി ഫ്രീക്വൻസി
-
കാഷെ സൈസ്
-
ഇന്റഗ്രേറ്റഡ് ഗ്രാഫിക്സ്
3. റാം
മെയിൻ മെമ്മറി കപ്പാസിറ്റി:
-
4: 4GB DDR4
-
8: 8GB DDR4
-
16: 16GB DDR4
-
32: 32GB DDR4
-
64: 64GB DDR4
യൂണിറ്റ് ഇല്ലാതെ 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
-
ഇല്ല: വയർലെസ് ഇല്ല (ഈതർനെറ്റ് മാത്രം)
7. OS
ഓപ്പറേറ്റിംഗ് സിസ്റ്റം:
-
11P: മൈക്രോസോഫ്റ്റ് വിൻഡോസ് 11 പ്രോ
-
U: ഉബുണ്ടു ലിനക്സ് 24.04 LTS
-
DOS: FreeDOS (OS ഇല്ല)
-
Thinux: തിൻവെന്റ്® തിനക്സ്™ എംബെഡഡ് ലിനക്സ്
8. ആകസ്സറികൾ (ഓപ്ഷണൽ)
അധിക ഘടകങ്ങൾ:
-
KM: കീബോർഡ് + മൗസ് കോമ്പോ
-
MK: മെക്കാനിക്കൽ കീബോർഡ്
-
VESA: VESA മൗണ്ട് ബ്രാക്കറ്റ്
-
Stand: ക്രമീകരിക്കാവുന്ന സ്റ്റാൻഡ്
ഒന്നിലധികം ആകസ്സറികൾ കൂട്ടിച്ചേർക്കാം: 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"]
}
}
}
ഇത് "ട്രിയോ-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, വിൻഡോസ് 11 പ്രോ
ഓരോ ഘടകത്തിനും 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)
ഈ ഫീച്ചറുകൾ എല്ലാ ഘടകങ്ങളിലുടനീളം ഒരുമിച്ച് ചേർത്ത് ഉൽപ്പന്നത്തിന്റെ പൂർണ്ണമായ ഫീച്ചർ സെറ്റ് സൃഷ്ടിക്കുന്നു