Tôi đang xây dựng một ứng dụng nơi tôi có một bảng cho các sự kiện và một bảng cho các địa điểm. Tôi muốn có thể cấp cho các ứng dụng khác quyền truy cập vào dữ liệu này. Tôi có một vài câu hỏi liên quan đến các phương pháp hay nhất cho loại vấn đề này.Các phương pháp hay nhất để hiển thị nhiều bảng bằng cách sử dụng các nhà cung cấp nội dung trong Android
Làm thế nào tôi nên cấu trúc các lớp cơ sở dữ liệu? Tôi hiện đang có các lớp cho EventsDbAdapter và VenuesDbAdapter, cung cấp logic cho truy vấn mỗi bảng, trong khi có một DbManager riêng biệt (mở rộng SQLiteOpenHelper) để quản lý các phiên bản cơ sở dữ liệu, tạo/nâng cấp cơ sở dữ liệu, truy cập cơ sở dữ liệu (getWriteable/ReadeableDatabase). Đây có phải là giải pháp được đề xuất, hay tôi sẽ tốt hơn hoặc là hợp nhất mọi thứ vào một lớp (ví dụ: DbManager) hoặc tách mọi thứ và cho phép mỗi Adapter mở rộng SQLiteOpenHelper?
Tôi nên thiết kế nhà cung cấp nội dung cho nhiều bảng như thế nào? Mở rộng câu hỏi trước, tôi có nên sử dụng một Nhà cung cấp nội dung cho toàn bộ ứng dụng hay tôi nên tạo các nhà cung cấp riêng cho Sự kiện và Địa điểm?
Hầu hết các ví dụ tôi chỉ tìm thấy đối phó với các ứng dụng bảng đơn, vì vậy tôi sẽ đánh giá cao bất kỳ con trỏ nào ở đây.
com.android.providers.contacts.ContactsProvider2.java https://github.com/android/platform_packages_providers_contactsprovider/blob/master/src/com/android/providers/contacts/ContactsProvider2.java – Alex
@ Cảm ơn Marloke. Ok, tôi hiểu rằng ngay cả nhóm Android cũng sử dụng giải pháp 'switch', nhưng phần này bạn đã đề cập:' Họ xử lý các truy vấn bảng chéo bằng cách cung cấp các khung nhìn chuyên biệt mà bạn chạy truy vấn ngược lại. Trên giao diện người dùng, người dùng có thể truy cập thông qua các URI khác nhau thông qua một nhà cung cấp nội dung duy nhất'. Bạn có nghĩ rằng bạn có thể giải thích chi tiết hơn một chút không? – eddy