मैंने इसे दो कॉलम का उपयोग करके कार्यान्वित किया। मैं इसे यहाँ थोड़ा सरल करता हूँ, क्योंकि मुझे टैग नाम को एक अलग फ़ील्ड/टेबल में रखना था क्योंकि मुझे इसे विभिन्न भाषाओं के लिए स्थानीय बनाना था:
- टैग
- पथ
उदाहरण के लिए इन पंक्तियों को देखें:
tag path
--- ----
database database/
mysql database/mysql/
mysql4 database/mysql/mysql4/
mysql4-1 database/mysql/mysql4-1/
oracle database/oracle/
sqlserver database/sqlserver/
sqlserver2005 database/sqlserver/sqlserver2005/
sqlserver2005 database/sqlserver/sqlserver2008/
आदि.
like
का उपयोग करना पथ क्षेत्र पर ऑपरेटर आप आसानी से सभी आवश्यक टैग पंक्तियाँ प्राप्त कर सकते हैं:
SELECT * FROM tags WHERE path LIKE 'database/%'
कुछ कार्यान्वयन विवरण हैं जैसे जब आप पदानुक्रम में एक नोड को स्थानांतरित करते हैं तो आपको सभी बच्चों को भी बदलना होगा, लेकिन यह कठिन नहीं है।
यह भी सुनिश्चित करें कि आपके पथ की लंबाई काफी लंबी है - मेरे मामले में मैंने पथ के लिए टैग नाम का उपयोग नहीं किया है, लेकिन यह सुनिश्चित करने के लिए एक और फ़ील्ड है कि मुझे बहुत लंबा पथ नहीं मिलता है।