Every Realm object conforms to a specific object type. Object types are classes you define that contain the properties and relationships for objects of that type using a pre-defined schema.
Realm garantiza que todos los objetos de un reino se ajusten al esquema para su tipo de objeto y valida los objetos cada vez que se crean, modifican o eliminan.
Realm objects are fundamentally similar to a common JavaScript object but they also bring along a few additional features like schema validation and live queries.
Los mapas de memoria del SDK de React Native asignan objetos Realm directamente a objetos JavaScript nativos, lo que significa que no es necesario utilizar una biblioteca de acceso a datos especial, como una ORM. En cambio, puedes trabajar con objetos Realm como lo harías con cualquier otro objeto.
Realm Schema
Un esquema de dominio es una lista de esquemas de objetos válidos que un dominio puede contener. Cada objeto de dominio debe cumplir con un tipo de objeto incluido en el esquema de su dominio.
Si un realm ya contiene datos cuando lo abres, Realm valida cada objeto para garantizar que se haya proporcionado un esquema de objeto para su tipo y que cumpla con todas las restricciones especificadas en el esquema.
Utilizando @realm/react, define un esquema de reino pasando esquemas de objetos individuales a RealmProvider o createRealmContext().
import Profile from './Models/Profile'; import {createRealmContext} from '@realm/react'; export const SyncedRealmContext = createRealmContext({ // Pass all of your models into the schema value. schema: [Profile], });
Relaciones
You can define relationships between objects in a realm. Realm models relationships as object properties that point to other objects of a given type in the realm. You define a relationship at the type level by declaring a property in the type's schema where the value is another object type.
La consulta de una relación es tan eficiente como la de una propiedad normal. Las relaciones son referencias directas a otros objetos, por lo que no es necesario usar combinaciones y modelos complejos para definirlas y utilizarlas como se haría en una base de datos relacional. En su lugar, puedes acceder a objetos relacionados leyendo y escribiendo directamente en la propiedad de relación.
Hay tres tipos principales de relaciones entre objetos:
Nota
Realm vs Other Databases
Objects often contain direct references to other objects. When working with objects and references, you typically copy data from database storage into application memory. This situation leaves the developer with a choice of what to copy into memory:
Puedes copiar todos los objetos referenciados a la memoria de antemano. Esto significa que todos los datos referenciados siempre están disponibles rápidamente, pero pueden usar muchos recursos. Si un sistema tiene una memoria limitada, esto puede no ser viable.
You can copy just a foreign key value for each object. Later, you can use the key to look up the full object when you need it. These "lazy" lookups are more memory-efficient than copying all referenced objects ahead of time. However, they require you to maintain more query code and use runtime lookups that can slow your app down.
Realm's query architecture avoids the tradeoff between memory usage and computational overhead. Instead, Realm queries can directly reference related objects and their properties on disk.
Tip
Alternatively, you can define your relationships in your App Services app.