मैं आमतौर पर डेटाबेस में प्राथमिक वेतन वृद्धि के रूप में ऑटो वेतन वृद्धि आईडी का उपयोग करता हूं। मैं GUID का उपयोग करने के लाभों को सीखने की कोशिश कर रहा हूं। मैंने यह लेख पढ़ा है: https://betterexplained.com/articles/the-quick-guide-to-guids/
मुझे लगता है कि इन GUID का उपयोग अनुप्रयोग स्तर पर वस्तुओं की पहचान करने के लिए किया जाता है। क्या उन्हें डेटाबेस स्तर पर प्राथमिक कुंजी के रूप में संग्रहीत किया जाता है। उदाहरण के लिए, कहें कि मेरे पास निम्न वर्ग था:
public class Person
{
public GUID ID;
public string Name;
..
//Person Methods follow
}
कहते हैं कि मैं एक नया व्यक्ति बनाना चाहता था और फिर व्यक्ति को एक डेटाबेस में सम्मिलित करना चाहता था। क्या मैं ऐसा कर सकता हूँ:
Person p1 = new Person();
p1.ID=GUID.NewGUID();
PersonRepository.Insert(p1);
कहो कि मेरे पास एक डेटाबेस था जिसमें प्राथमिक कुंजी के रूप में एक GUID के साथ लाखों और लाखों पंक्तियाँ थीं। क्या यह हमेशा अनूठा होगा? क्या मैं GUID को सही ढंग से समझ रहा हूं?
मैंने इस लेख को पहले पढ़ा: http://enterprisecraftsmanship.com/2014/11/15/cqs-with-database-generated-ids/ । यह मुझे थोड़ा भ्रमित करता है क्योंकि यह प्राथमिक कुंजी के रूप में GUID और पूर्णांक के बीच एक खुश माध्यम की सिफारिश करता प्रतीत होता है।
संपादित करें 11/06/18
मुझे विश्वास है कि Guids मेरी आवश्यकताओं के लिए ints से अधिक उपयुक्त हैं। मैं इन दिनों CQRS का उपयोग कर रहा हूं और GUID अधिक अच्छी तरह से फिट होते हैं।
मैं ध्यान देता हूं कि कुछ डेवलपर्स GUID को डोमेन मॉडल में स्ट्रिंग के रूप में मॉडल करते हैं जैसे यहाँ: https://github.com/dotnet-Healthecture/eShopOnContainers/blob/dev/src/Services/Or/ing/Ordering.Domain/AggregatesModel/BuyerAggregate/ Buyer.cs - इस मामले में: IdentityGuid एक GUID है जिसे एक स्ट्रिंग के रूप में बनाया गया है। क्या यहां बताए गए के अलावा ऐसा करने का कोई कारण है: किसी वितरित सिस्टम में एक कस्टम आइडेंटिफायर के रूप में कस्टम वैल्यू ऑब्जेक्ट या गाइड का उपयोग करें? । क्या GUID को एक स्ट्रिंग के रूप में मॉडल करना "सामान्य" है या क्या मुझे मॉडल और डेटाबेस में GUID के रूप में मॉडलिंग करनी चाहिए?