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

क्या इकाई ढांचे 4 में पदानुक्रम आईडी डेटाटाइप का उपयोग करने का कोई व्यावहारिक तरीका है?

ठीक है, ऐसा लगता है कि मुझे विचार मिल रहे हैं लेकिन कोई प्रतिक्रिया नहीं है। मुझे एसक्यूएल के ऊपर पदानुक्रम संरचना के साथ काम करने की तत्काल आवश्यकता थी, इसलिए मैंने एक स्थिर सहायक वर्ग को एक साथ रखा। मैं इसे पूर्ण समाधान नहीं मानता, लेकिन अभी तक यह अपेक्षाकृत अच्छी तरह से काम करता है। PadPath वास्तव में यहाँ महत्वपूर्ण कार्य है।

public static class SQLHierarchyManipulatin {
    const int   DEFAULT_PAD_LEN     = 3;
    const char  DEFAULT_PAD_CHAR    = '0';

    public static string PadPath(string Hierarchy) {
        return PadPath (Hierarchy, DEFAULT_PAD_LEN);
    }       
    public static string PadPath(string Hierarchy, int padLen) {
        string[]    components  = Hierarchy.Split('/');

        for (var i = 0; i < components.Length; i++ ) {
            if (components[i] != "") {
                components[i] = components[i].PadLeft(padLen, DEFAULT_PAD_CHAR);
            }
        }
        return string.Join("/", components);
    }

    public static int CurrentNodeIndex(string Hierarchy) {
        string[]    components  = Hierarchy.Split('/');
        string      startItem   = components[components.Length - 2]; //one slot back from trailing slash

        return int.Parse(startItem);
    }

    public static string ParentPath (string Hierarchy) {
        return  Hierarchy.Substring(0, Hierarchy.TrimEnd('/').LastIndexOf('/') + 1);
    }

    public static string AppendChildWithPadding (string Hierarchy, int childIndex, int padLen) {
        return AppendChild(Hierarchy, childIndex, DEFAULT_PAD_LEN);
    }
    public static string AppendChildWithPadding (string Hierarchy, int childIndex) {
        return AppendChild(Hierarchy, childIndex, DEFAULT_PAD_LEN);
    }
    public static string AppendChild (string Hierarchy, int childIndex) {
        return AppendChild(Hierarchy, childIndex, DEFAULT_PAD_LEN);
    }
    public static string AppendChild (string Hierarchy, int childIndex, int padLen) {
        return Hierarchy + childIndex.ToString().PadLeft(padLen, DEFAULT_PAD_CHAR) + "/";
    }
}

उम्मीद है कि यह किसी की मदद करता है! हालांकि, मैं अब भी लोगों से सुनना चाहूंगा।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मुझे SQL सर्वर में बिगिन/एंड ब्लॉक्स और गो कीवर्ड का उपयोग कब करना चाहिए?

  2. SQL सर्वर में नामकरण मानकों या नामकरण सम्मेलन के अनुसार सभी डिफ़ॉल्ट बाधाओं का नाम कैसे बदलें - SQL सर्वर / TSQL ट्यूटोरियल भाग 93

  3. एक तकनीकी तुलना:माइक्रोसॉफ्ट एक्सेस 2016 बनाम एसक्यूएल सर्वर 2016

  4. एक अदिश चर में SQL सर्वर आउटपुट क्लॉज

  5. @@ ROWCOUNT - SQL सर्वर में अंतिम कथन से प्रभावित पंक्तियों की संख्या प्राप्त करें