मैंने अपने मामले में डेटाबेस पर एक नई तालिका बना रहा था, आप इसे Domainsउदाहरण के लिए कह सकते हैं ।
सभी विशिष्ट विशेषताओं को जोड़ें, जिन्हें कुछ डोमेन पर दिखाया जा सकता है, लेकिन बाकी में नहीं, क्योंकि उस तालिका के कॉलम में बूलियन मानों के लिए बिट। जैसे, मेरे मामले में allow_multiple_bookings,use_company_card ... जो भी हो।
फिर, एक वर्ग Domainऔर उसके संबंधित भंडार बनाने पर विचार करें , और अपने कोड पर इन मूल्यों को पूछें, जितना संभव हो उतना उस तर्क को अपने डोमेन (आपके मॉडल, एप्लिकेशन सेवाओं, आदि) में धकेलने का प्रयास करें।
उदाहरण के लिए, मैं नियंत्रक विधि पर चेक नहीं करूंगा, RequestBookingयदि जो डोमेन बुकिंग के लिए अनुरोध कर रहा है वह केवल एक या अधिक अनुरोध कर सकता है।
इसके बजाय मैं यह एक पर करते हैं RequestBookingValidatorService जो यह चेक कर सकता है कि बुकिंग डेटटाइम बीत चुका है या नहीं, उपयोगकर्ता के पास एक सक्षम क्रेडिट कार्ड है, ... या यह क्रिया जिस डोमेन से आती है उसे एक से अधिक बुकिंग का अनुरोध करने की अनुमति है (और तब यदि यह पहले से ही है कोई भी)।
यह पठनीयता की सुविधा जोड़ता है, जैसा कि आपने इस निर्णय को अपनी एप्लिकेशन सेवाओं पर धकेल दिया है। इसके अलावा, मुझे लगता है कि जब भी मुझे एक नई सुविधा की आवश्यकता होती है, तो मैं उस सुविधा को टेबल पर जोड़ने के लिए लारवेल (या सिम्फनी) माइग्रेशन का उपयोग कर सकता हूं और मैं अपनी पंक्तियों (आपके डोमेन) को उन मूल्यों के साथ भी अपडेट कर सकता हूं जो मैं उसी कमिट पर चाहता हूं जिसे मैंने कोडित किया था।