আমি যখনই কোনও নতুন প্রকল্পে কাজ শুরু করি তখনই আমার নিজের সাথে মানসিক বিতর্ক হয় এবং আমি আমার পোকো ডিজাইন করি। আমি অনেক টিউটোরিয়াল / কোড নমুনাগুলি দেখেছি যা বিদেশী কী সংস্থাগুলির পক্ষে রয়েছে বলে মনে হয় :
বিদেশী কী সমিতি
public class Order
{
public int ID { get; set; }
public int CustomerID { get; set; } // <-- Customer ID
...
}
স্বাধীন সমিতিগুলির বিরোধিতা হিসাবে :
স্বতন্ত্র সমিতি
public class Order
{
public int ID { get; set; }
public Customer Customer { get; set; } // <-- Customer object
...
}
আমি অতীতে NHibernate এর সাথে কাজ করেছি এবং স্বতন্ত্র সমিতিগুলি ব্যবহার করেছি যা কেবলমাত্র OO বোধ করে না, তবে (অলস লোডিং সহ) আমাকে কেবল তার আইডি না দিয়ে পুরো গ্রাহক অবজেক্টে অ্যাক্সেস দেওয়ার সুবিধাও রয়েছে। এটি আমাকে উদাহরণস্বরূপ, একটি অর্ডার উদাহরণ পুনরুদ্ধার করতে এবং তারপরে Order.Customer.FirstName
স্পষ্টভাবে একটি যোগদান না করেই করতে দেয় যা অত্যন্ত সুবিধাজনক।
তাই পুনরুদ্ধার করার জন্য, আমার প্রশ্নগুলি হ'ল:
- স্বাধীন সমিতিগুলি ব্যবহারে কোনও উল্লেখযোগ্য অসুবিধা আছে কি? এবং...
- যদি কিছু না থাকে তবে বিদেশী কী সংযুক্তিগুলি ব্যবহার করার কারণ কী হবে?