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

OpenCart:oc_category_path को सटीक रूप से कैसे पॉप्युलेट करें

यदि आपके ओसी स्टोर में कोई श्रेणी रूट श्रेणी है, तो उसे पथ तालिका में एक प्रविष्टि मिलती है जैसे "category_id,category_id,0"। यदि उस श्रेणी में एक बच्चा है तो उसे तालिका में दो प्रविष्टियां मिलेंगी, अर्थात्:-"category_id ,category_id,1" और साथ ही "category_id,parent_id,0"।

यदि उस बच्चे का अपना बच्चा है, तो उस नए बच्चे की तीन प्रविष्टियाँ होंगी जैसे :-
"category_id,category_id,2"
"category_id,parent_id,1"
"category_id,parents पैरेंट श्रेणी_आईडी,0"

इसे स्पष्ट करने के लिए, मान लें कि किसी श्रेणी में "14" की एक श्रेणी_आईडी है। यह "11" की श्रेणी_आईडी वाली श्रेणी का पहला बच्चा है। वह श्रेणी, जिसमें "11" की श्रेणी_आईडी है, वह श्रेणी वाली श्रेणी का बच्चा है। "1" की आईडी। (1>11>14 जैसा कि व्यवस्थापक पैनल में दिखाया गया है, श्रेणी_आईडी के बजाय नाम को छोड़कर)

उपरोक्त में 3 प्रविष्टियां होंगी जैसे:
"14",,"14",,"2"
"14",,"11",,"1"
"14",,"1" ,"0"

तो इसकी मूल श्रेणी को 0 मिलेगा, अगले वाले को 1 मिलेगा, और अगले 2 को, और आगे, यह सब इस पर निर्भर करता है कि यह कितने श्रेणी का स्तर नीचे है।

मुझे उम्मीद है कि चीजों को अच्छी तरह से समझाएं।

इसे पॉप्युलेट करने के लिए, सबसे आसान तरीका है, लेकिन एक पूर्ण विधि नहीं है, केवल "category_id,category_id,0" के साथ तालिका बनाना है। यह उन्हें व्यवस्थापक पैनल में दिखाने के लिए मिलेगा। यदि आप "मरम्मत" पर क्लिक करते हैं तो यह इस तालिका को सही ढंग से उत्पन्न करेगा।

वैकल्पिक रूप से आपको अपनी श्रेणी तालिका के माध्यम से कदम उठाना होगा, इसके parent_id के साथ एक सरणी बनाना, उस parent_id को इसके parent_id के लिए देखना और इसे सरणी में जोड़ना, और आगे। जब सरणी पूरी हो जाती है, यानी कोई और माता-पिता नहीं हैं, तो उन्हें सही "स्तर" के साथ तालिका में जोड़ना एक आसान काम होगा।

FYI करें, एक और तालिका है जिसे पॉप्युलेट करने की भी आवश्यकता है, category_to_store, जो कि बहुत ही सरल "category_id, store_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. Django को असमर्थित MySQL ड्राइवरों जैसे gevent-mysql या Concurrence के MySQL ड्राइवर के साथ कैसे काम करें?

  2. MySQL में कैस्केड पर कैसे अपडेट करें?

  3. PHP - MySQL को संग्रहीत कार्यविधि से आउट पैरामीटर का मान मिलता है

  4. मैं हाइबरनेट का उपयोग करके अंतिम सम्मिलित आईडी कैसे प्राप्त कर सकता हूं?

  5. जावा का उपयोग करके एक MySQL तालिका में रिकॉर्ड सम्मिलित करना