我的移动应用程序中有一个非常简单的架构结构:
export const DepositSchema = {
name: "Deposit",
properties: {
uuid: "string",
payments: "Payment[]",
},
primaryKey: "uuid",
};
export const PaymentSchema = {
name: Instance.Payment,
properties: {
payment_amount: "string",
payment_method: "string",
deposit: {
type: "linkingObjects",
objectType: "Deposit",
property: "payments",
},
},
primaryKey: "uuid",
};
所以意味着每笔存款可以有零次、一次或几次付款(可以部分支付),但一次付款应该只分配给一笔存款
我将 Payment 对象放入 Realm 数据库,如下所示:
database.manager.write(() => {
if (payment.deposit_uuid) {
deposit = database.manager.objectForPrimaryKey("Deposit", payment.deposit_uuid);
}
const createdDbPayment = database.manager.create(
Instance.Payment,
{
...payment,
status: STATUS_TO_IGNORE,
},
Realm.UpdateMode.Modified,
);
if (deposit && createdDbPayment && deposit.payments.filtered("uuid == $0", payment.uuid).length == 0) {
deposit.payments.push(createdDbPayment);
}
});
同时,当我尝试记录从领域数据库获取的付款对象时,看起来我没有分配给这笔付款的一笔存款,而是获得了一系列存款。(ofc 只有一个对象,但很烦人)
问题是:有没有办法连接这个模式来呈现 One2Many(不是 many2many)关系?
我想实现:
payment.deposit.uuid
而不是payment.deposit[0]?.uuid
感谢您的帮助