Bir geçişte references :foo
kullandığımda, oluşturulan sütun foo_id
olarak adlandırılır. references :foo
yapmanın ve sadece integer :foo_id
yapmanın arasında bir fark var mı? Belki de ilişkiyi veritabanı seviyesinde zorlamak için başlık altında bir şeyler oluyor?Raylar: 'reference: foo' ve 'integer: foo_id' arasında bir fark var mı?
6
A
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.
İlgili konular
- 1. Aşağıdakiler arasında herhangi bir fark var mı: window.localStorage ve localStorage?
- 2. Guice @provides ve bind() arasında bir fark var mı?
- 3. $ (e.currentTarget) ve $ (this) arasında bir fark var mı?
- 4. /mnt/sdcard ve/sdcard arasında bir fark var mı?
- 5. System.Windows.Clipboard ve System.Windows.Forms.Clipboard arasında bir fark var mı?
- 6. Arasında bir fark var mı? ve * cron ifadelerinde? Garip örnek
- 7. Javascript'te "this" ve "prototype" kullanımı arasında bir fark var mı?
- 8. gluLookAt() ve glFrustum() arasında bir fark var mı?
- 9. WPF TextBlock ve TextBox arasında bir fark var mı?
- 10. TParallel. & For ve TParallel.For arasında bir fark var mı?
- 11. Varyant() ve varyant arasında bir fark var mı?
- 12. Sınıf foo, sınıf foo() ve sınıf foo (object) arasındaki fark?
- 13. Normalde Express'te değişkenler arasında fark var mı?
- 14. BLOB'lar ve bağlı bileşenler arasında fark var mı?
- 15. 'And' ve 'AndAlso' ile linq'de linkalar arasında fark var mı?
- 16. - Bir fark var mı?
- 17. var foo = foo || uyarı (foo);
- 18. LayoutInflater.from (context) ile context.getLayoutInflater() arasında bir fark var mı?
- 19. Parantez ile örnekleme veya olmadan arasında bir fark var mı?
- 20. c de 1U ile 1 arasında bir fark var mı?
- 21. NSString karşılaştırması arasında bir fark var: ve isEqual (ToString) :?
- 22. PHP array() ve [] arasında fark
- 23. Bir std :: ifstream ile, karakterleri göz ardı etmek ve aramak arasında bir fark var mı?
- 24. Sadece bir üyemiz varsa, yapı ve sendika arasında bir fark var mı?
- 25. "margin: 0 auto;" arasında bir fark var mı? ve "kenar boşluğu: otomatik;"
- 26. Specflow'un .msi yükleyicisi ve nuget paketi arasında bir fark var mı?
- 27. Boost's scoped mutex ve WinAPi'nin kritik bölümü arasında bir fark var mı?
- 28. $ ('. ClassName> button') ve $ ('. ClassName'). Children ('button') arasında bir fark var mı? jQuery yılında
- 29. SQL Server'da DateTime C# ve DateTime arasında bir fark var mı?
- 30. Müşteri Enum tipi ve Sistem Numaralandırma Türü arasında herhangi bir fark var mı
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
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
Bunun bir çeşit kıvrımlı olduğunu biliyorum. Aslında seni üzene kadar endişelenmemeli :-) – noodl