রেলগুলি কীভাবে জানতে পারে যে user_id
এটি একটি বিদেশী কী রেফারেন্সিং user
?
রেলগুলি নিজেই জানে না যে user_id
এটি কোনও বিদেশী কী রেফারেন্সিং user
। প্রথম কমান্ডে rails generate model Micropost user_id:integer
এটি কেবল একটি কলাম যুক্ত করে user_id
তবে রেলগুলি কর্নার ব্যবহার জানে না। আপনাকে ম্যানুয়ালি Micropost
মডেলটিতে লাইনটি লাগাতে হবে
class Micropost < ActiveRecord::Base
belongs_to :user
end
class User < ActiveRecord::Base
has_many :microposts
end
কীওয়ার্ড belongs_to
এবং has_many
এই মডেল এবং ঘোষণা মধ্যে সম্পর্ক নির্ধারণ user_id
করার জন্য একটি বিদেশী কী-এর মত User
মডেল।
পরে কমান্ড rails generate model Micropost user:references
লাইন যোগ করে belongs_to :user
এ Micropost
মডেল এবং এতদ্দ্বারা একটি বিদেশী কী-এর মত ঘোষণা করে।
এফওয়াইআই
প্রাক্তন পদ্ধতিটি ব্যবহার করে বিদেশী কীগুলি ঘোষণার মাধ্যমে কেবলমাত্র মডেলগুলি / টেবিলের সম্পর্ক সম্পর্কে রেলগুলি জানতে দেয়। ডাটাবেস সম্পর্ক সম্পর্কে অজানা। অতএব আপনি যখন সফ্টওয়্যার ব্যবহার করে EER ডায়াগ্রাম তৈরি করেন তখন আপনি MySql Workbench
দেখতে পাবেন যে মডেলগুলির মধ্যে কোনও সম্পর্কের থ্রেড নেই। নিম্নলিখিত ছবিতে লাইক
তবে আপনি যদি পরবর্তী পদ্ধতিটি ব্যবহার করেন তবে আপনি দেখতে পাবেন যে আপনার মাইগ্রেশন ফাইলটি এমন দেখাচ্ছে:
def change
create_table :microposts do |t|
t.references :user, index: true
t.timestamps null: false
end
add_foreign_key :microposts, :users
এখন বিদেশী কীটি ডাটাবেস স্তরে সেট করা আছে। এবং আপনি সঠিক EER
চিত্রটি তৈরি করতে পারেন ।