Term_id और term_taxonomy_id के बीच क्या अंतर है


20

शीर्षक ही सब कुछ कह देता है। मेरे कस्टम टैक्सोनॉमीज़ में इस समय मुझे शब्द आईडी और टैक्सोनॉमी नाम का उपयोग करने की शर्तें मिल रही हैं।

सोचा था कि यह सवाल पहले पूछा गया था, लेकिन कहीं भी नहीं मिल सकता है! तो बस मैंने सोचा कि मैं पूछूं और देखूं कि किसी के पास कोई जवाब है या नहीं।

जवाबों:


21

यदि आप Wordpress प्रलेखन में एक नज़र डालते हैं तो आपको Wordpress वर्गीकरण मिलेगा

  • term_id शब्द तालिका में एक शब्द की आईडी है
  • term_taxonomy_id शब्द + टैक्सोनॉमी जोड़ी के लिए एक विशिष्ट आईडी है।

इसलिए केवल term_id के आधार पर जोड़-तोड़ और हथियाने से डुप्लिकेट का कारण नहीं होगा?
दैतिनी

1
वास्तव में सिर्फ उस आखिरी सवाल का जवाब दिया। Wp_terms की तालिका पर एक नज़र था और केवल term_id का उपयोग करके सुरक्षित है। आपके उत्तर के लिए धन्यवाद
दाती

2
बस यह ध्यान दें कि वर्डप्रेस 4.2 में सभी शब्द विभाजित थे , जिसका अर्थ है कि प्रत्येक term_idअब केवल एक बार term_taxonomyतालिका में होगा (स्तंभ अद्वितीय नहीं होने से पहले और शर्तों को वर्गीकरणों में साझा किया जा सकता है)। यह भविष्य में टैक्सोनॉमी रोडमैप के आधार पर विकसित करना जारी रख सकता है । इसका एक हिस्सा टर्म और टर्म टैक्सोनॉमी टेबल को मिलाना है
JD

11

कोडेक्स कहता है:

  • term_id शब्द तालिका में एक शब्द की आईडी है
  • term_taxonomy_id शब्द + टैक्सोनॉमी जोड़ी के लिए एक विशिष्ट आईडी है

इसका क्या मतलब है?

एक शब्द एक शब्द है। यह एक वर्गीकरण के रूप में हो सकता है, जैसे कि टैग, श्रेणियां या एक कस्टम वर्गीकरण। बात यह है: एक ही शब्द वाले कई टैक्सोनोमी हो सकते हैं।

मान लीजिए कि आपके पास एक शब्द है जिसका नाम है "फेटनिंग"। इस शब्द का एक आईडी नंबर है। यह टर्म_ड है। यह इस बात पर निर्भर नहीं करता है कि इस शब्द का उपयोग कैसे किया जाता है, अर्थात इसमें टैक्सोनॉमी शब्द दिखाई देता है।

अब पोस्ट टैग के रूप में शब्द "फेटनिंग" में भी एक संख्या है। यह term_taxonomy_id है। यह "पोस्ट टैग 'फेटनिंग' से मेल खाता है।"

हो सकता है कि आपके पास भी “फेटनिंग” नाम की एक श्रेणी हो। जबकि term_id एक ही है, शब्द "श्रेणी" fattening "के लिए अलग है।


5

के रूप में यह डिजाइन की एक बड़ी समझ का एक हिस्सा है मैं इसे पूरे के रूप में वर्णन करेगा ... :)

WP 4.5.3 में अभी भी ये सभी टेबल हैं (मैं उपसर्ग के बिना उनके बारे में बात करूंगा ):

  • पदों
  • term_relationships
  • term_taxonomy
  • मामले

पोस्ट शब्द पढ़ने योग्य नाम प्राप्त करने का मार्ग उन सभी के माध्यम से जाता है।


यहाँ मुख्य पहचानकर्ता के पद हैंID - एक आईडी (किसी भी प्रकार का)

term_relationships
की दुकानों जोड़े:
object_id- कर सकते हैं हो सकता है posts.ID(लेकिन है नहीं होना चाहिए)
term_taxonomy_id- यह नहीं एक शब्द (श्रेणी) की आईडी, लेकिन एक का आईडी संबंध एक ऐसा शब्द है (श्रेणी) और वर्गीकरण के बीच ( "श्रेणी प्रकार")

टर्म_टैक्सोनॉमी यहां
के मुख्य पहचानकर्ता को term_taxonomy_id^ ^ से ऊपर दे दिया गया है।
एक अन्य महत्वपूर्ण कॉलम:
term_id- एक शब्द (श्रेणी) की एक आईडी
taxonomy - शब्द का वर्गीकरण ("श्रेणी प्रकार") संग्रहीत करता है

यह एक अजीब लग सकता है, लेकिन प्रारंभिक इरादा शर्तों के लिए और अधिक वर्गीकरण करने की क्षमता को जोड़ना था (जो कुछ मामलों में समझ में आ सकता है)।


यहां मुख्य पहचानकर्ता की शर्तें हैंterm_id - एक श्रेणी की एक आईडी एक
अन्य महत्वपूर्ण कॉलम यहां हैं:
name- पठनीय श्रेणी का नाम जैसे "संगीत शैली"
slug- यूआरएल में प्रयोग करने योग्य शब्द का स्लग जैसे URL

इसलिए सभी प्रकाशित पोस्ट और श्रेणियों के नाम वाली उनकी सभी श्रेणियों को पाने के लिए एसक्यूएल का प्रदर्शन करने वाला क्रूर इस तरह दिख सकता है (अपने WP DB पर परीक्षण करते समय तालिकाओं में उपसर्ग जोड़ें):

SELECT * FROM
posts #gets posts
LEFT JOIN
term_relationships #gets posts relationships to term_taxonomies
ON(posts.ID=term_relationships.object_id)
LEFT JOIN
term_taxonomy #gets term_ids 
ON(term_relationships.term_taxonomy_id=term_taxonomy.term_taxonomy_id)
LEFT JOIN
terms #finally, gets terms' names
ON(term_taxonomy.term_id=terms.term_id)
WHERE (
    (posts.post_status='publish') 
    #optionally you can filter by a certain post_type:
    #AND
    #(posts.post_type='some_post_type')
)
ORDER BY posts.ID ASC

2

एक शब्द अपने आप में एक श्रेणी या टैग नहीं है। इसे term_taxonomy तालिका के माध्यम से संदर्भ दिया जाना चाहिए।

Term_taxonomy तालिका एक वर्गीकरण के भीतर एक शब्द रखती है। यह वह है जो किसी शब्द को एक श्रेणी , एक टैग या एक कस्टम टैक्सोनॉमी (या टैक्सोनोमियों के संयोजन में) बनाता है ।

term_id शब्दों की तालिका में एक शब्द की आईडी है।

term_taxonomy_id शब्द + वर्गीकरण जोड़ी के लिए एक विशिष्ट आईडी है।

term_idहमेशा की तरह ही अनूठा है term_taxonomy_id। दोनों Auto Incrementकी तालिका संरचना में एक है।

मेज wp_term_taxonomyतो वर्डप्रेस यह जैसे Woocommerce उपयोगों के साथ हस्तक्षेप कर सकते हैं, यकीन है कि उदाहरण है कि एक वर्ग बनाई गई है के लिए बनाता है: product_tag, product_type, product_cat, उन सभी को तथाकथित कस्टम taxonomies हैं। यह तालिका अभिभावक / बच्चों के ढांचे को भी बांधती है। इसके साथ कॉलम है parent

अंतिम तालिका, term_relationships, जैसे पद या लिंक से संबंधित शब्द term_taxonomy_id term_taxonomy तालिका से।

अगर हम एक उदाहरण के रूप में फिर से Woocommerce चुनते हैं, तो यह तालिका productsउनके वर्गीकरण के प्रकार पोस्ट को लिंक करती है product_cat, जिसमें एक नामी उदा कंप्यूटर होता है, जो निश्चित रूप से तालिका से पुनर्प्राप्त होता है wp_terms। इस तालिका में शामिल term_id, name, slugऔर term_group। (term_group मैं व्यक्तिगत रूप से कभी इस्तेमाल नहीं किया है)

उम्मीद है कि उपरोक्त बातें मतभेदों के बारे में थोड़ा और स्पष्ट करती हैं और कैसे Wordpress इन तालिकाओं का उपयोग करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.