Reino: utilice uno o varios reinos en una aplicación (y uno o varios esquemas)

Estoy implementando una aplicación que persiste datos en algunos puntos (no relacionados entre ellos) usando Realm. Por ejemplo:

  1. Guarde los elementos que el usuario prefiera.
  2. (La aplicación tiene un chat) Guardar las conversaciones de chat y las constantes recientes
  3. Implementar una caché persistente para algunas solicitudes de la aplicación
  4. Guardar búsquedas recientes / formulario para proporcionar el autocompletado

(Permite nombrar cada uno de esos puntos como un módulo / paquete)

Cada módulo / paquete tiene algunos RealmObjects para persistir. ¿Cómo debo organizar esto? Desde el punto de vista de la limpieza del código, el rendimiento o lo que yo deba cuidar

Opción A: Utilizar un dominio único (predeterminado) con un esquema único:

Utilizar Realm.getInstance(context)

Acceso a los RealmObjects adecuados en cada módulo / paquete

Opción B: Utilizar varios dominios con el esquema predeterminado

Especifique un nombre diferente en RealmConfiguration para el dominio utilizado en cada módulo (utilizando el esquema predeterminado).

Dado que los datos pertenecen a diferentes partes de la aplicación, aislados y no interconectados, utilice diferentes nombres de dominio para cada módulo.

Opción C: Utilizar dominios múltiples y ámbito de aplicación Las clases de modelo utilizadas con un esquema por paquete de aplicación Especifique un nombre y un esquema para cada paquete aislado. Por ejemplo:

 public static Realm getChat(Context context){ RealmConfiguration config = new RealmConfiguration.Builder(context) .name("chat.realm") .schemaVersion(1) .setModules(new ChatRealmModule()) .build(); return Realm.getInstance(config); } // Create the module @RealmModule(classes = { ChatRoom.class, ChatMessage.class, ChatUser.class}) public static class ChatRealmModule{ } 

Opción D: ¿Otros?

One Solution collect form web for “Reino: utilice uno o varios reinos en una aplicación (y uno o varios esquemas)”

Si sus datos están realmente completamente desconectados, yo iría con la opción C) Hace para una separación limpia. Las migraciones son más fáciles de manejar, y también hay una ganancia de rendimiento muy pequeña como Realm tiene que pasar por todas las clases de modelo en un reino de vez en cuando.

Pero ninguna de las opciones son "incorrectas".

  • Realm con datos pre-poblados en activos?
  • Realm Auto Incremento campo ejemplo
  • Consulta de dominio con Lista
  • Cómo borrar la base de datos en el reino en Android
  • ¿Cómo instalar el reino como una dependencia gradle?
  • Cómo convertir RealmResults objeto a RealmList?
  • Cómo utilizar Realm asObservable con el operador concat () de RxJava?
  • Cómo ver mi archivo Realm en el Realm Browser?
  • Se ha roto la restricción de clave primaria. El valor ya existe: 0
  • Android Realm copyToRealmOrUpdate actualiza los campos existentes
  • Acceso al dominio desde un subproceso incorrecto
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.