Khi tôi sử dụng references :foo
khi di chuyển, cột được tạo ra được gọi là foo_id
. Có sự khác biệt nào giữa việc thực hiện references :foo
và chỉ cần thực hiện integer :foo_id
? Có lẽ một cái gì đó đang xảy ra dưới mui xe để thực thi mối quan hệ ở cấp cơ sở dữ liệu?Đường ray: có sự khác biệt giữa 'tham chiếu: foo' và 'số nguyên: foo_id' không?
6
A
Trả lời
8
Kết quả giống nhau đối với trường hợp cụ thể của bạn; bạn nói đúng. Nhưng references
cho phép tùy chọn :polymorphic => true
sẽ tự động tạo cột foo_type
dưới dạng chuỗi trong bảng.
Ngữ nghĩa, references
là tốt hơn nếu bạn đang cố gắng làm cho di chuyển của bạn phản ánh tốt hơn mối quan hệ giữa các bảng trong cơ sở dữ liệu.
2
@ Câu trả lời của Mike độc đáo giải thích ý nghĩa của references
. Tuy nhiên, tốt hơn là không nên di chuyển quá gần với các liên kết AR của bạn. Đặc biệt, bạn có thể nhận được tất cả các loại dưa chua khi nói đến việc triển khai ứng dụng của bạn nếu bạn chạy di chuyển trước khi cập nhật ứng dụng từ kiểm soát phiên bản, chẳng hạn. Nó không phải là một vấn đề lớn cho đến khi nó cắn bạn :-)
Các vấn đề liên quan
- 1. Có sự khác biệt nào giữa [& foo] {...} và chụp [foo] {...} nếu 'foo' là biến tham chiếu không?
- 2. Sự khác biệt giữa "if (foo) bar();" và "foo && bar();"
- 3. Sự khác biệt giữa tài nguyên và tài nguyên trong định tuyến đường ray?
- 4. sự khác biệt giữa một con trỏ và tham số tham chiếu?
- 5. Đường ray 3: Sự khác biệt giữa Relation.count và Relation.all.count
- 6. Có sự khác biệt nào giữa "foo is None" và "foo == None" không?
- 7. Sự khác biệt giữa const. con trỏ và tham chiếu?
- 8. Sự khác biệt giữa tham chiếu chuyển tiếp và *?
- 9. Làm thế nào để Scala biết sự khác biệt giữa "def foo" và "def foo()"?
- 10. Sự khác biệt giữa các loại nguyên thủy và tham chiếu là gì?
- 11. Sự khác biệt hiệu suất, nếu có, giữa if (! Foo) và if (foo == false) trong Java?
- 12. Sự khác biệt về PHP giữa int và số nguyên
- 13. Sự khác biệt giữa tham chiếu web và tham chiếu dịch vụ?
- 14. Sự khác biệt giữa `nâng cao 'foo" `và` nâng cao ngoại lệ.new ("foo") `là gì?
- 15. Sự khác biệt số nguyên trong python giữa hai ngày
- 16. Sự khác biệt giữa Mã hóa và đối chiếu?
- 17. sự khác biệt giữa ARC và MRC
- 18. Sự khác biệt giữa self.up và di chuyển trong đường ray
- 19. Có sự khác biệt nào giữa System.Windows.Clipboard và System.Windows.Forms.Clipboard không?
- 20. Sự khác biệt giữa @string và @ + string?
- 21. Sự khác biệt giữa việc sử dụng `máy chủ đường ray` và` rackup` là gì?
- 22. Sự khác biệt về đường ray giữa mới + lưu và tạo
- 23. Sự khác biệt giữa AbstractController và ActionController trong đường ray 4
- 24. Sự khác biệt giữa chuỗi và văn bản trong đường ray?
- 25. sự khác biệt giữa UINavigationController và UINavigationItem
- 26. Sự khác biệt giữa các loại tham số
- 27. Có sự khác biệt nào giữa gluLookAt() và glFrustum() không?
- 28. có sự khác biệt giữa/mnt/sdcard và/sdcard không?
- 29. Sự khác biệt giữa $ (...) và `...`
- 30. Sự khác biệt giữa loại đối tượng và kiểu tham chiếu
vì vậy bạn có cho rằng tài liệu tham khảo có thể nguy hiểm không? Bạn có thể đưa ra một ví dụ về loại dưa chua mà nó có thể đưa tôi vào? – kdt
Thông thường, điều này có thể dẫn đến các vấn đề nếu việc cập nhật mô hình và mã của bạn không nằm trong cùng một cam kết kiểm soát phiên bản hoặc ví dụ: nếu bạn thay đổi ý định về liên kết sau và cần cập nhật máy quá xa đường cong sự phát triển của bạn. Vì vậy, bạn sẽ có migration1 sử dụng 'references' và do đó xác định tên khóa ngoài từ các liên kết mô hình AR. Sau đó, bạn quyết định hoàn tác việc di chuyển đó bằng một tài khoản mới và cũng xóa liên kết khỏi mã của bạn. Bây giờ, bất kỳ máy nào có lược đồ là 2 thế hệ cũ không thể chạy di chuyển vì liên kết đã biến mất. – noodl
Tôi biết đó là loại phức tạp. Tôi không nên lo lắng về nó cho đến khi nó thực sự làm tổn thương bạn :-) – noodl