कई-से-कई संबंध यहां एकमात्र व्यवहार्य विकल्प हैं। एक कारण है कि वे इसे एक संबंधपरक डेटाबेस कहते हैं।
क्यों?
- जुड़ना वास्तव में उतना महंगा नहीं है।
- एकाधिक कॉलम - आपकी टेबल में कॉलम की संख्या लुडिक्रिस होगी और यह सच्चा डेवलपर नरक होगा। जैसा कि प्रत्येक सुविधा एक माइग्रेशन जोड़ती है, आपके कोडबेस में मंथन की मात्रा मूर्खतापूर्ण होगी।
- ऐरे कॉलम - एक सरणी कॉलम का उपयोग करना एक आकर्षक विकल्प की तरह लग सकता है जब तक कि आप यह महसूस न करें कि यह वास्तव में अल्पविराम से अलग स्ट्रिंग में चीजों को भरने पर मामूली सुधार है। आपके पास कोई संदर्भात्मक अखंडता नहीं है और कोई भी कोड संगठन लाभ नहीं है जो आपके आवेदन में संस्थाओं का प्रतिनिधित्व करने वाले मॉडल होने से आता है। VS बस CASCADE का उपयोग कर रहे हैं।
class Feature
has_many :user_features
has_many :users, through: :user_features
end
class UserFeature
belongs_to :user
belongs_to :feature
end
class User
has_many :user_features
has_many :features, through: :user_features
def has_feature?(name)
features.exist?(name: name)
end
end