2016-03-22 24 views
2

をレルムがネイティブで親子ネストされた関係で結ぶ双方向で行うリアクトどのように質問ネストされたオブジェクトが反応-ネイティブ

IはInvoiceLinesで構成されている請求書オブジェクトを有します。古いデータベースでは、InvoiceLineテーブルの各行に親InvoiceのIDへの参照があります。 。

:その請求書にInvoiceLineまたはそのInvoiceLinesのすべての請求書のいずれかから取得するためのID = "クエリレルムで

が、私は次のスキーマ(言い換え)を持っているつもりだWHERE」だから、シンプルこの直接リンクのパフォーマンスは、IDを使用して、それにレルム内の伝統的な方法をやって比較するか、これらのリンクのすべてを格納するためのメモリのトレードオフがありますどのように

class Invoice {}; 
Invoice.schema = { 
    name: 'Invoice', 
    properties: { 
    ... 
    lines: {type: 'list', objectType: 'InvoiceLine'} 
    } 
} 

class InvoiceLine {}; 
InvoiceLine.schema = { 
    name: 'InvoiceLine', 
    properties: { 
    ... 
    invoice: 'Invoice', 
    } 
} 

+0

興味深いことに、 'invoice'プロパティを' Invoice'オブジェクトとして保存しています。私は 'invoiceId'を使って親オブジェクトを追跡しています。 'InvoiceLine'レコードを作成するときは' {...、invoice:realmInvoice、...} 'を使用しますか? 'myInvoiceLine.invoice'を呼び出すと、それはRealm DBから最新の' Invoice'レコードを取得しますか? –

+0

FYI、Realm JS 'Githubのリンクでこの機能を追跡するためのリンクは次のとおりです:https://github.com/realm/realm-js/issues/343 –

+0

"InvoiceLineレコードを作成すると、{... 、請求書:realmInvoice、...}? " - そのとおり。 "myInvoiceLine.invoiceを呼び出すと、レルムDBから最新の請求書レコードが取得されますか? - まだ親を使用しているビットを持っていないが、そう望む!問題はありましたか? – edmofro

答えて

1

のリンクを使用して、ほぼ同一またはより良いを実行する必要がありますほとんどの場合、IDを使用します。以下のリンクは、IDで検索するよりもはるかに高速です。オブジェクトを削除するときです。親クラスのインスタンスを削除する場合、削除された親を指すすべての子リンクはnullに設定されます。とにかくやりたいことです。子オブジェクトを削除するときに、時には更新する必要がある内部簿記がありますが、これは一般に知覚できないほど速いです。

関連する問題