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 Auto Incremento campo ejemplo
  • Adición de objetos independientes a una RealmList
  • Java Realm obtiene el último elemento insertado
  • ¿Uso práctico de @Ignore in Realm?
  • Cómo utilizar Realm asObservable con el operador concat () de RxJava?
  • Requisito de dominio con dos condiciones al mismo tiempo
  • Cómo truncar todas las tablas en el reino de Android
  • Cómo hacer una copia de seguridad de Realm DB en Android antes de eliminar el archivo Realm. ¿Hay alguna manera de restaurar el archivo de copia de seguridad?
  • Borrar la base de datos predeterminada de Android Realm
  • RealmMigrationNeededException al cambiar el modelo de Realm
  • ¿Cómo puedo crear una base de datos Realm con datos iniciales para mi aplicación android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.