Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

अज्ञात लंबाई की एक सरणी संग्रहीत करना

यदि आप स्वयं को ऐसी स्थिति में पाते हैं जहां आपके पास column1 . होना शुरू हो जाता है , column2 मेज पर - संभावना है कि आपका डिज़ाइन त्रुटिपूर्ण हो रहा है, और आपको इसके बजाय एक अलग तालिका बनानी चाहिए - जहां प्रत्येक columnX अपनी एक पंक्ति प्राप्त करता है। यदि आप अपने आप को एक ही टेबल पर कई दोहराए जाने वाले कॉलम पाते हैं तो एक अलग टेबल रखना (लगभग) हमेशा बेहतर होता है।

इस तरह, आप कॉलम में अल्पविराम से अलग किए गए मानों को संग्रहीत करने से बचते हैं, यदि आप अचानक एक और मान column{X+1} पेश करना चाहते हैं तो आप अपने कोड/क्वेरी को तोड़ने से बचते हैं - और इसके बजाय आपके पास जितने चाहें उतने या कुछ इनपुट-वैल्यू हो सकते हैं।

आपके लिए, यह land_owner_input . नामक एक नई तालिका जैसा कुछ होगा , जहां आपके पास मूल्य है (जिसे आप columnX . में डालेंगे ), और land_owner . में पंक्ति का संदर्भ जिसका मान संबंधित है।

विशिष्ट डिजाइन पैटर्न कुछ इस तरह होगा।

CREATE TABLE land_owner_input (
    land_owner_input_id INT(11) AUTO_INCREMENT
    land_owner_id INT(11), 
    land_owner_input_value VARCHAR(MAX)
);

ध्यान रखें कि आपका land_owner_id नई तालिका में ठीक उसी प्रकार और आकार का होना चाहिए जिस आईडी से इसका संदर्भ मिलता है।

आप land_owner_id . के बीच एक विदेशी कुंजी बाधा भी बना सकते हैं और land_owner . की आईडी डेटा अखंडता सुनिश्चित करने के लिए तालिका।

एक बार जब आप अपनी नई तालिका प्राप्त कर लेते हैं, तो आप LEFT JOIN . का उपयोग करके उन्हें एक साथ क्वेरी कर सकते हैं (या सामान्य JOIN यदि आप केवल पंक्तियों को वापस करना चाहते हैं यदि इसमें इनपुट-मान हैं)।

SELECT *
FROM land_owner AS lo
LEFT JOIN land_owner_input AS loi
    ON loi.land_owner_id = lo.land_owner_id 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में एक-से-अनेक संबंध - कैसे मॉडल बनाने के लिए?

  2. शुरुआती और इंटरमीडिएट के लिए 10 MySQL डेटाबेस साक्षात्कार प्रश्न

  3. my.cnf में MySQL डिफॉल्ट कैरेक्टर सेट को UTF-8 में बदलें?

  4. CHAR () MySQL में उदाहरण

  5. कुछ प्रश्नों के योग परिणाम और फिर SQL में शीर्ष 5 खोजें