2010-12-10 7 views
7

मैं समझता हूं कि डिफ़ॉल्ट रूप से id फ़ील्ड बनाया गया है और यह भी: PRIMARY KEY ( आईडी )रेल 3 पर रुबी में विदेशी कुंजी बाधा क्या बनाता है?

विदेशी कुंजी के बारे में कैसे?

मैं Shops और Products टेबल और निम्न संघों है:

Shop: has_many :products 
Product: belongs_to :shop 

Product में मैं भी है:

t.integer "shop_id" 

जिसका अर्थ यह है विदेशी कुंजी हो सकता है, और यह भी:

add_index("products", "shop_id") 

हालांकि, अगर मैं डेटाबेस निर्यात करता हूं तो मैं देखता हूं ly:

KEY `index_products_on_shop_id` (`shop_id`) 

मैं क्रम में क्या करना

FOREIGN KEY (`shop_id`) REFERENCES Shop(`id`) 

जोड़ने के लिए करना चाहिए?

उत्तर

16

आप अपने आवेदन में विदेशी कुंजी जोड़ने के लिए foreigner मणि का उपयोग कर सकते हैं। आरंभ करने के लिए उसके बाद अपने Gemfile

gem "foreigner" 

के लिए निम्न जोड़ने आप आसानी से ऐसा तरह अपने प्रवास में विदेशी कुंजी जोड़ सकते हैं:

add_foreign_key :products, :shops 

यह shop.id को product.shop_id से एक विदेशी जोड़ना होगा। अलग-अलग नामों या स्वयं-संदर्भ तालिकाओं जैसे अधिक विकल्पों के लिए प्रलेखन देखें।

संबंधित मुद्दे