2011-01-19 17 views

cevap

8

Sonuç, özel durumunuz için aynıdır; haklısın. Ancak references, :polymorphic => true seçeneği için foo_type sütununu otomatik olarak tabloda bir dize olarak oluşturur. Göçmenlerinizin veritabanındaki tablolar arasındaki ilişkiyi daha iyi yansıtmasını sağlamaya çalışıyorsanız, Semptomatik olarak, references daha iyidir.

2

@ Mike'ın cevabı güzel bir şekilde references'un anlamını açıklar. Bununla birlikte, geçişlerinizi AR kuruluşlarına çok fazla yaklaştırmamak genellikle daha iyidir. Örneğin, uygulamayı sürüm kontrolünden güncellemeden önce geçişlerinizi çalıştırırsanız, uygulamanızı konuşlandırmaya geldiğinde her türlü turşuya girebilirsiniz.

+0

sizi bulana kadar büyük bir anlaşma değil, bu yüzden referansların tehlikeli olabileceğini mi düşünüyorsunuz? Beni nasıl sokabileceğine dair bir örnek verebilir misin? – kdt

+1

Genellikle bu durum, geçişlerinizin ve model kodunuzun güncellemelerinin aynı sürüm denetiminde bulunmaması durumunda sorunlara yol açabilir veya örneğin daha sonra ilişkilendirmeye ilişkin fikrinizi değiştirirseniz ve eğrinin çok gerisinde olan bir makineyi güncellemeniz gerekirse senin gelişimin. Böylece, "referanslar" kullanan ve böylece AR modeli ilişkilerinden gelen yabancı anahtar adını belirleyen bir geçişe sahip olursunuz1. Daha sonra bu taşıma işlemini yeni biriyle geri almaya karar verirsiniz ve ayrıca ilişkilendirmeyi kodunuzdan kaldırırsınız. Şimdi, şemaları 2 nesil olan herhangi bir makine, göçler gitmediğinden geçişleri çalıştıramaz. – noodl

+0

Bunun bir çeşit kıvrımlı olduğunu biliyorum. Aslında seni üzene kadar endişelenmemeli :-) – noodl

İlgili konular