2010-11-13 39 views
5

ORM nào là tốt nhất để sử dụng với ứng dụng Rails 3 mới dựa vào cơ sở dữ liệu MySQL 5.1 cũ? Tôi không mong đợi bao giờ chạy một di chuyển đối với cơ sở dữ liệu này (mặc dù lược đồ có thể thay đổi theo thời gian), nhưng tôi chắc chắn sẽ viết thư cho nó.Rails 3: ActiveRecord so với DataMapper (so với ???) cho Cơ sở dữ liệu MySQL kế thừa

+0

Bạn có thể chia sẻ một chút lược đồ không? – rwilliams

+0

Xin lỗi, đó là tài sản trí tuệ của khách hàng, vì vậy tôi không thể chia sẻ nó. –

Trả lời

12

Tôi có thể thiên về DataMapper, nhưng tôi nghĩ DM thường là một lựa chọn tốt để tích hợp với cơ sở dữ liệu cũ.

  • DM cho phép bạn để lập bản đồ mô hình và tài sản có ý nghĩa tên để khó hiểu di sản ước bảng và cột đặt tên. Nó cho phép bạn làm như vậy trên cho mỗi mô hình/thuộc tính hoặc một ứng dụng rộng.

  • DM hỗ trợ thuộc tính lười biếng, thuộc tính này sẽ chỉ được tìm nạp khi thực sự được truy cập.

  • DM có hỗ trợ liền mạch cho các khóa chính kết hợp.

  • DM chỉ quan tâm đến các thuộc tính (cột) bạn rõ ràng tuyên bố trong các mô hình của mình. Các cột khác sẽ không bao giờ được chạm hoặc đọc.

  • DM hoạt động tốt với các ràng buộc khóa ngoài trong cơ sở dữ liệu của bạn và với sự trợ giúp của dm-constraints nó cũng hỗ trợ tạo chúng.

Có một số tài liệu về số http://datamapper.org/docs/legacy.

5

Ngoài ra còn có thư viện dm-type-legacy (https://github.com/postmodern/dm-types-legacy) cung cấp các loại DM phổ biến để ánh xạ trong dữ liệu được định dạng kỳ lạ (Số địa chỉ IP, HTML/URI văn bản được mã hóa, chuỗi Ngày/Giờ).

+1

Có cách nào trong số này hoạt động với datetime_select không? Ví dụ, tôi đang cố gắng cập nhật một trường datetime và nó không thành công vì điều này: "published_at (1i)" => "2010", "published_at (2i)" => "11", "published_at (3i)" => "14", "published_at (4i)" => "07", "published_at (5i)" => "59" –

Các vấn đề liên quan