दोनों साथ-साथ चलते हैं। एक के बिना दूसरा अधूरा है। अगर आप चाहते हैं कि आपके रिश्ते ठीक से काम करें, तो आपको इन दोनों चीजों को परिभाषित करने की जरूरत है।
यदि आपने माइग्रेशन फ़ाइल में अभी-अभी विदेशी कुंजी को परिभाषित किया है, तो संबंध ठीक उसी स्थिति में काम करेगा जब आप एक कच्ची क्वेरी लिखते हैं। यह आपके मॉडलों पर काम नहीं करेगा, क्योंकि आपने अपने मॉडलों में संबंधों के बारे में कुछ भी नहीं लिखा है।
तो, जैसे ही आप hasMany लिखते हैं आपके मॉडल में से एक में, और दूसरे मॉडल में संबंधित फ़ंक्शन, केवल तभी आपके मॉडल एक-दूसरे के बारे में जानते हैं, और फिर आप अपने मॉडल के साथ-साथ अपने डेटाबेस में चीजों को सफलतापूर्वक क्वेरी कर सकते हैं।
यह भी ध्यान दें कि यदि आपने hasMany . के माध्यम से संबंधों को ठीक से परिभाषित किया है और belongsTo अपने मॉडल में, लेकिन मॉडल की तालिका में विदेशी कुंजी प्रदान नहीं की है जो belongsTo अन्य तालिका, आपके संबंध काम नहीं करेंगे।
संक्षेप में, दोनों समान रूप से अनिवार्य हैं।