سؤال

أنا أعاني من الخطوة الأولى على "كيفية تصميم العلاقة"؟ لقد اتبعت نماذج قليلة ،

class CarMake  
end  

class Region  
end  

Class CarModel  
end  

العلاقة هي أن "صانع السيارات" لديها العديد من النماذج تنتمي إلى مناطق صفر أو أكثر. على سبيل المثال ، دعنا نقول أن هوندا لديها نموذج "مدني" في أمريكا الشمالية وآسيا. أيضا هوندا لديها "Civicmini" فقط في أوروبا. ما هي أفضل طريقة لتصميم هذه العلاقات؟ هل هو مثل كل كارمديل ينتمي إلى صانع السيارات عبر المنطقة؟

هناك أيضًا عدد قليل من النماذج الأخرى التي تستخدم هذه العلاقة ،

عميل

class Customer  
  has_many :cars   
end  

تشير هذه السيارة إلى جميع السمات مثل Carmake و Carmodel والمنطقة ، ولكن كيف (هل أحتاج إلى فئة أخرى لتخزين هذه السمات والرجوع إليها هنا في "السيارة"؟)

class Car  
  belongs_to :customer  
end  
هل كانت مفيدة؟

المحلول

في فئة السيارات تحدد واجهة متعددة الأشكال

belongs_to :car_type(interface name change according to you), polymorphic: true

في فئة صانع السيارات

has_many :cars, as: :car_type

في فئة كارمودل

has_many :cars, as: :car_type

في فئة المنطقة

has_many :cars, as: :car_type

وكلما قمت بتخزين سجل في طاولة السيارات .... قم بتخزين نوع الكائن الذي سيكون (Carmaker و Carmodel والمنطقة) ومعرف

نصائح أخرى

هل سيعمل هذا من أجلك؟

class Maker
   has_many :models
end

class Model
   has_many :regions
   belongs_to :maker
end

class Region
  belongs_to :model
end

class Car
  has_one :model
  belongs_to :customer
end

class Customer
  has_many :cars
end

لذلك في هذه الحالة ، يمكن أن يكون لدى العميل سيارات متعددة هي نفس النماذج أو مختلفة ، ويمكن للنموذج أن يحتوي على العديد من المناطق المختلفة وينتمي إلى صانع.

هل هذا يعمل لحالة الاستخدام الخاصة بك؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top