2011-06-29 38 views
6

Tôi đang sử dụng ORB RedBean để viết một số mã và tôi đã tự hỏi liệu tôi có thể tải/lấy lại chỉ một số trường từ bảng db hay không. Tôi biết có một phương pháp tải nhưng nó cung cấp cho toàn bộ bảng như đậu. Tôi chỉ muốn có một số lĩnh vực? Heh, khi tôi viết nó, tôi bắt đầu tự hỏi nếu nó không chống lại mô hình RedBean (hoặc ORM), bởi vì chỉ nhận được một số giá trị sẽ tạo ra không hợp lệ (chỉ với một số giá trị) đối tượng/đậu? Tôi muốn làm cho một số tải lười biếng của các giá trị ... có thể có một số ORM khác (dễ dàng như RedBean :) để đạt được điều này?Chỉ lấy một số trường trong RedBean

Trả lời

3

Nó không có ý nghĩa để tải chỉ một số lĩnh vực từ mức kỷ lục:

  • Bằng cách chọn các lĩnh vực ít bạn sẽ không giảm số lượng các truy vấn
  • It wont giảm lượng dữ liệu cần được chuyển giao (điều này có liên quan nhiều hơn đến số hàng)

Ngoài ra, RedBeanPHP đã tải xuống tất cả các trường quan hệ, do đó không cần phải làm hướng dẫn này. Nếu bạn quan tâm đến chỉ việc sử dụng tế bào duy nhất:

R::getCell("select title from document where id = 1"); 

Hoặc chỉ cần lấy một số lĩnh vực từ mức kỷ lục:

R::getRow("select id,title from document where... "); 

Những chức năng trả lại hồ sơ, không đậu, đây là cách nhanh nhất để đối phó với các trường và hàng đơn giản.

Hy vọng câu trả lời này sẽ giúp ...

+3

Xin lỗi nhưng tôi sẽ phải không đồng ý. Hãy tưởng tượng một blog. Nó có 200 bài viết với rất nhiều văn bản trong thuộc tính 'body' của mỗi bài viết. Nếu bạn muốn hiển thị danh sách tất cả các bài viết, bạn có thể dễ dàng hết bộ nhớ tải thuộc tính 'body' của tất cả chúng. Nhưng vấn đề là bạn không cần 'body' để hiển thị danh sách. Tải chọn lọc sẽ tiết kiệm trong ngày tại đây. Nhưng dù sao, tôi yêu ORM của bạn và bạn đã làm một công việc thực sự tuyệt vời. Cảm ơn bạn rất nhiều: D –

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