আমি সাধারণত ডাটাবেসে প্রাথমিক কী হিসাবে অটো ইনক্রিমেন্ট আইডি ব্যবহার করি। আমি জিইউইডি ব্যবহার করার সুবিধাগুলি জানার চেষ্টা করছি। আমি এই নিবন্ধটি পড়েছি: https://betterexplained.com/articles/the-quick-guide-to-guids/
আমি বুঝতে পারি যে এই জিইউইডিগুলি অ্যাপ্লিকেশন পর্যায়ে অবজেক্টগুলি সনাক্ত করতে ব্যবহৃত হয়। এগুলি কি ডাটাবেস স্তরে প্রাথমিক কী হিসাবে সঞ্চিত আছে? উদাহরণস্বরূপ, বলুন যে আমার নিম্নলিখিত ক্লাস ছিল:
public class Person
{
public GUID ID;
public string Name;
..
//Person Methods follow
}
বলুন আমি মেমোরিতে একটি নতুন ব্যক্তি তৈরি করতে চেয়েছিলাম এবং তারপরে সেই ব্যক্তিকে একটি ডাটাবেসে intoোকাতে চাইছিলাম। আমি কি কেবল এটি করতে পারি:
Person p1 = new Person();
p1.ID=GUID.NewGUID();
PersonRepository.Insert(p1);
বলুন আমার কাছে প্রাথমিক ডাটা হিসাবে একটি জিইউডি সহ কয়েক মিলিয়ন এবং কয়েক মিলিয়ন সারি সম্বলিত একটি ডাটাবেস ছিল। এটি কি সর্বদা অনন্য হবে? আমি কি জিইউইডিগুলি সঠিকভাবে বুঝতে পারি?
আমি এই নিবন্ধটি আগে পড়েছি: http://enterprisecraftsmanship.com/2014/11/15/cqs-with-datedia-generated-ids/ । এটি আমাকে কিছুটা বিভ্রান্ত করে কারণ এটি প্রাথমিক কী হিসাবে জিইউইডি এবং পূর্ণসংখ্যার মধ্যে একটি সুখী মাধ্যমের প্রস্তাব দেয়।
11/06/18 সম্পাদনা করুন
আমি বিশ্বাস করতে পেরেছি যে গাইডগুলি আমার প্রয়োজনীয়তার জন্য ইনটগুলির চেয়ে বেশি উপযুক্ত। আমি এই দিনগুলিতে আরও বেশি সিকিউআরএস ব্যবহার করছি এবং জিইউইডিগুলি আরও সুন্দরভাবে ফিট করে।
আমি লক্ষ্য করেছি যে কিছু বিকাশকারীরা জিইউইডিগুলিকে ডোমেন মডেলটিতে স্ট্রিং হিসাবে মডেল করে উদাহরণস্বরূপ: https://github.com/dotnet-architecture/eShopOnContainers/blob/dev/src/Services/Ordering/Ordering.Domain/AggregatesModel/BuyerAggregate/ ক্রেতা.সিএস - এই ক্ষেত্রে: আইডেন্টিটিগুইড একটি স্ট্রিং হিসাবে মডেল করা একটি জিইউডি UID এখানে যা বলা হয়েছে তা বাদ দিয়ে কি এটি করার কোনও কারণ আছে: একটি বিতরণ সিস্টেমে একটি কাস্টম মান অবজেক্ট বা কোনও গাইডকে সত্তা সনাক্তকারী হিসাবে ব্যবহার করবেন? । জিইউডিকে স্ট্রিং হিসাবে মডেল করা কি "সাধারণ" বা মডেল এবং ডাটাবেসে আমাকে জিইউইডি হিসাবে মডেলিং করা উচিত?