Mejores prácticas para exponer varias tablas utilizando proveedores de contenido en Android

Estoy construyendo una aplicación donde tengo una mesa para eventos y una mesa para lugares. Quiero poder otorgar a otras aplicaciones acceso a estos datos. Tengo algunas preguntas relacionadas con las mejores prácticas para este tipo de problema.

¿Cómo debo estructurar las clases de la base de datos? Actualmente tengo clases para EventsDbAdapter y VenuesDbAdapter, que proporcionan la lógica para consultar cada tabla, al tiempo que tengo un DbManager (extiende SQLiteOpenHelper) para administrar versiones de bases de datos, crear / actualizar bases de datos, dar acceso a la base de datos (getWriteable / ReadeableDatabase). ¿Es esta la solución recomendada, o sería mejor consolidar todo en una clase (es decir, el DbManager) o separar todo y dejar que cada adaptador extienda SQLiteOpenHelper?

¿Cómo debo diseñar proveedores de contenido para varias tablas? Extendiendo la pregunta anterior, ¿debería usar un proveedor de contenido para toda la aplicación, o debería crear proveedores separados para eventos y lugares?

La mayoría de los ejemplos que encuentro solo tratan con aplicaciones de tabla única, por lo que agradecería cualquier puntero aquí.

Respuestas a la pregunta(5)

Su respuesta a la pregunta