sql - Mysql select value of the key from single field of table having multiple key-value pairs -
मेरे पास तालिका है:
सेवाएं:
+ ---- + ----------- + ------------ + ------------- + | आईडी | नाम | सेवा_आईडी | विवरण | + ---- + ----------- + ------------ + ------------- + | 1 | चैट | 1 | | | 2 | एसएमएस | 1 | | + ---- + ----------- + ------------ + ------------- + < / पूर्व> सेवा_पूर्णताओं:
+ ---- + ------------ + ------------ + ------------- + | आईडी | सेवा_आईडी | नाम | विवरण | + ---- + ------------ + ------------ + ------------- + | 10 | 1 | ऑडियो | | | 20 | 1 | वीडियो | | | 30 | 2 | बुलक्सम | | + ---- + ------------ + ------------ + ------------- + ग्राहक सेवा:
+ ---- + ----------- + ------------ + ---------------------------------- + --------------- -------------------------- + + | आईडी | Client_id | सेवा_आईडी | सेवा_फ़ेक्स_आईडी | सेवा_मूल्य | + ---- + ----------- + ------------ + ------------------- --------------- + ---------------------------------- ----------- + | 100 | 1000 | 1 | विशेषताएं: {10: सक्षम, 20: अक्षम} | मूल्य: {data_transfer: 102400, कोटा: 204800} | | 200 | 1001 | 2 | विशेषताएं: {30: सक्षम} | मूल्य: {कुल_एसएमएस: 100000, उपयोगकर्ता: 800} | | 300 | 1001 | 1 | विशेषताएं: {10: अक्षम, 20: सक्षम} | मूल्य: {कोटा: 204800} | + ---- + ----------- + ------------ + ------------------- --------------- + ---------------------------------- ----------- + अब मैं केवल mysql चयन क्वेरी से client_id 1000 के लिए किसी भी कुंजी के डेटा_transfer या कोटा की सेवा मान चाहता हूँ। उत्तर क्रमशः 102400 या 204800 होना चाहिए क्या तालिकाओं को औपचारिक रूप देने या जानकारी संग्रहीत करने का कोई बेहतर तरीका है? कृपया सुझाव दें।
बिल्कुल बेहतर तरीका है आपके स्कीमा को client_services के बजाय दो और तालिकाओं, client_services_features और client_services_values की आवश्यकता है client_services_features में कॉलम हैं: - आईडी
- client_id
- services_id
- service_feature_id
- सक्षम है
और client_services_values में स्तंभ हैं जैसे: - आईडी
- client_id
- value_name
- value_value
जब भी आपको एक तालिका संरचना मिलती है जो एक पंक्ति में चीजों की सूची रखती है , आप आमतौर पर सूची के लिए एक अलग तालिका बनाना चाहते हैं। सूची में एड्स शामिल हैं, तो आप हमेशा सूची के लिए एक सेपरेट टेबल बनाना चाहते हैं।
Comments
Post a Comment