2010-12-22 18 views
14

एक MySQL डेटाबेस में मैक पते को स्टोर करने के लिए उपयोग करने के लिए सबसे अच्छा फ़ील्ड प्रकार क्या है? साथ ही, इसे एक निश्चित विभाजक (कोलन या डैश) के साथ संग्रहीत किया जाना चाहिए या इसे विभाजक के बिना संग्रहीत किया जाना चाहिए?MySQL: मैक पते को स्टोर करने का सबसे अच्छा तरीका?

+0

परिभाषित 'सर्वश्रेष्ठ'। आप डेटा के साथ क्या करना चाहते हैं? –

+0

यह एक सूची प्रणाली के लिए है। मुझे लगता है कि मेरा सवाल है "ज्यादातर लोग क्या करते हैं?"। – Nick

+0

सभी उत्तरों के लिए धन्यवाद! मैं कुछ प्रयोग करूँगा। – Nick

उत्तर

2

here पर एक नज़र डालें। आम तौर पर, CHAR (12) अच्छा है लेकिन विवरण आपकी आवश्यकताओं पर निर्भर करते हैं। या बस PostgreSQL का उपयोग करें, जिसमें अंतर्निहित मैकड्रर प्रकार है।

+2

पहली बार मैंने PostgreSQL मैकड्रर प्रकार –

+0

का उल्लेख देखा है: PostgreSQL मैकड्रर प्रकार 8-बाइट मैक का समर्थन नहीं करता – Tilo

1

यह देखते हुए कि MySQL उपयोगकर्ता परिभाषित एक्सटेंशन का समर्थन नहीं करता है, और न ही यह मनमाने ढंग से एक्सटेंशन या प्लगइन (केवल स्टोरेज इंजन के लिए) का समर्थन करता है, तो आपकी सबसे अच्छी शर्त इसे एक CHAR (17) मानक में ASCII स्ट्रिंग के रूप में स्टोर करना है नोटेशन (उदाहरण के लिए, कोलन विभाजक के साथ), या एक छोटा बीएलओबी और सीधे बाइट स्टोर करें। हालांकि, अधिकांश अनुप्रयोगों के लिए स्ट्रिंग नोटेशन अधिक अनुकूल होगा।

आप इसे एक ट्रिगर के साथ जोड़ना चाहते हैं जो मान्य करता है कि यह एक मैक पता है, क्योंकि यह वास्तव में कस्टम प्रकारों के समर्थन के बिना डेटा वैधता को लागू करने का एकमात्र तरीका है।

28

उपयोग अहस्ताक्षरित (8 बाइट्स) BigInt तो आप कर सकते हैं:

select hex(mac_addr) from log; 

और

insert into log (mac_addr) values (x'000CF15698AD'); 
+2

क्यों 6 बाइट नहीं? –

+0

ताकि आप इन्फिनिबैंड GUID भी डाल सकें :-) –

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

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