সুতরাং আমি যে পরিস্থিতিটি প্রায়শই সংঘটিত হয়ে থাকি তা হ'ল আমার মডেলগুলি আরম্ভ হয়:
- টন এবং টন পদ্ধতি সহ দানবগুলিতে বৃদ্ধি করুন
অথবা
- আপনাকে তাদের কাছে এসকিউএল এর টুকরো পাস করার অনুমতি দিন, যাতে তারা এক মিলিয়ন বিভিন্ন পদ্ধতির প্রয়োজন না হয়ে যথেষ্ট নমনীয় হয়
উদাহরণস্বরূপ, বলুন আমাদের একটি "উইজেট" মডেল রয়েছে। আমরা কয়েকটি প্রাথমিক পদ্ধতি দিয়ে শুরু করি:
- পেতে ($ ID)
- সন্নিবেশ ($ রেকর্ড)
- আপডেট (আইডি, $ রেকর্ড)
- ডিলিট ($ ID)
- getList () // উইজেটগুলির একটি তালিকা পান
এগুলি সব ঠিকঠাক এবং ঘৃণ্য, তবে তারপরে আমাদের কিছু প্রতিবেদন দরকার:
- listCreatedBetween ($ start_date, $ end_date)
- তালিকাপরিচালিত মধ্যে ((স্টার্ট_ডেট, $ শেষ_ তারিখ)
- listOfPending ()
এবং তারপরে রিপোর্টিং জটিল হতে শুরু করে:
- listPendCreatedBetween ($ start_date, $ end_date)
- listForCustomer ($ গ্রাহক)
- listPendCreatedBetweenForCustomer ($ গ্রাহক_আইডি, $ শুরু_ তারিখ, $ শেষ_ তারিখ)
আপনি দেখতে পাচ্ছেন যে এটি কোথায় বৃদ্ধি পাচ্ছে ... অবশেষে আমাদের অনেকগুলি নির্দিষ্ট ক্যোয়ারী প্রয়োজনীয়তা রয়েছে যা আমাকে হয় টন এবং টন পদ্ধতি প্রয়োগ করতে হবে, বা কোনও ধরণের "কোয়েরি" অবজেক্ট যা আমি একক -> ক্যোয়ারিতে যেতে পারি (কোয়েরি) $ প্রশ্ন) পদ্ধতি ...
... বা কেবল বুলেট কামড়ান, এবং এই জাতীয় কিছু শুরু করুন:
- তালিকা = মাইমোডেল-> ক্যোয়ারী ("শুরু_ তারিখ> এক্স এবং শেষ_ তারিখ <ওয়াই এবং মুলতুবি = 1 এবং গ্রাহক_আইডি = জেড")
আরও 50 মিলিয়ন অন্যান্য নির্দিষ্ট পদ্ধতির পরিবর্তে এর মতো একটি পদ্ধতি রাখার জন্য একটি নির্দিষ্ট আবেদন রয়েছে ... তবে এটি কখনও কখনও নিয়ন্ত্রকের মধ্যে মূলত এসকিউএল কী আছে তার একটি গাদা স্টাফ করতে "ভুল" বোধ করে।
এরকম পরিস্থিতি পরিচালনা করার জন্য কি কোনও "সঠিক" উপায় আছে? জেনেরিক -> ক্যোয়ারী () পদ্ধতিতে এর মতো স্টাফিং কোয়েরি করা কি গ্রহণযোগ্য বলে মনে হচ্ছে?
আরও ভাল কৌশল আছে?