আমি একটি এসকিউএল সার্ভার ডাটাবেসের সাথে 1000+ টেবিল, আরও কয়েক'শ ভিউ এবং কয়েক হাজার সঞ্চিত পদ্ধতি সহ কাজ করছি। আমরা আমাদের নতুন প্রকল্পগুলির জন্য সত্তা ফ্রেমওয়ার্ক ব্যবহার শুরু করার সন্ধান করছি এবং আমরা এটি করার জন্য আমাদের কৌশল নিয়ে কাজ করছি। আমি যে জিনিসটি ঝুলিয়ে রেখেছি তা হ'ল কীভাবে সারণিগুলি বিভিন্ন মডেলগুলিতে বিভক্ত করা যায় (EDMX বা DbContext যদি আমরা কোডটি প্রথমে যাই তবে)। আমি ব্যাট থেকে ঠিক কয়েকটি কৌশল সম্পর্কে ভাবতে পারি:
- স্কিমা দ্বারা
বিভক্ত আমাদের টেবিলগুলি সম্ভবত এক ডজন স্কিমায় বিভক্ত। আমরা স্কিমা প্রতি একটি মডেল করতে পারে। এটি নিখুঁত নয়, যদিও ডিবিও এখনও প্রায় 500+ টেবিল / মতামত সহ অনেক বড় হয়ে যায়। আরেকটি সমস্যা হ'ল নির্দিষ্ট কিছু ইউনিট কাজের লেনদেন করতে হবে যা একাধিক মডেলকে ছড়িয়ে দেয়, যা জটিলতায় যোগ করে, যদিও আমি ধরে নিই যে ইএফ এটি মোটামুটি সোজা করে তোলে। - অভিপ্রায় অনুসারে
বিভক্ত স্কিমা সম্পর্কে উদ্বিগ্ন না হয়ে মডেলগুলিকে অভিপ্রায় অনুসারে ভাগ করুন। সুতরাং আমরা কীভাবে দানাদার পেতে চাই তার উপর নির্ভর করে প্রতিটি অ্যাপ্লিকেশন, বা প্রকল্প, বা মডিউল বা স্ক্রিনের জন্য আমাদের আলাদা আলাদা মডেল থাকবে। সমস্যাটি আমি এর সাথে দেখতে পাচ্ছি হ'ল এমন কিছু সারণী রয়েছে যা ব্যবহারকারী বা অডিট হিস্টরির মতো প্রতিটি ক্ষেত্রে অনিবার্যভাবে ব্যবহার করতে হয়। আমরা কি প্রত্যেকটি মডেলগুলিতে যুক্ত করি (আমার মনে হয় ডিআরওয়াই লঙ্ঘন করে), বা পৃথক মডেলগুলিতে যা প্রতিটি প্রকল্প দ্বারা ব্যবহৃত হয়? - মোটেও বিভক্ত করবেন না - একটি দৈত্য মডেল
এটি বিকাশের দিক থেকে স্পষ্টতই সহজ তবে আমার গবেষণা এবং আমার অন্তর্দৃষ্টি থেকে মনে হয় এটি নকশাকালীন সময়ে, সংকলনের সময় এবং সম্ভবত চালনার সময় উভয়ই ভয়াবহভাবে সম্পাদন করতে পারে।
এত বড় ডাটাবেসের বিরুদ্ধে ইএফ ব্যবহারের জন্য সেরা অনুশীলন কী? বিশেষত লোকেরা ডিবি অবজেক্টের এই ভলিউমের বিপরীতে মডেলগুলি ডিজাইনে কী কৌশল ব্যবহার করে? এমন কি বিকল্প রয়েছে যা আমি উপরের চেয়ে তার চেয়ে ভাল সেই কাজটির কথা ভাবছি না?
এছাড়াও, NHibernate এর মতো অন্যান্য ওআরএমগুলিতেও কি এই সমস্যা? যদি তা হয় তবে তারা কি এএফ এর চেয়ে আরও ভাল সমাধান নিয়ে এসেছেন?