4

DojoToolkitのデータ/ストアの概念を詳しく調べようとしています。

DojoStoreがDojoDataAPIに置き換わるものであることを理解しているので、新しいAPIを使用してみます。

このAPIの背後にある概念を理解したかどうか疑問に思う2つのポイントがあります。

  • Dojoは、メモリストアとJson-RESTストアのみを提供します。IndexedDB APIに基づいている場合、なぜIndexedDBストアを提供しないのですか?

  • さまざまなデータ型を格納するためにストアが使用される例は見つかりませんでした。SQLデータベースでは、それぞれにID列を持つ異なるテーブルが存在する場合があります。この概念をDojoストアにどのようにマッピングしますか:PersonとCompanyを表すために異なるストアを使用する必要がありますか(例として)?または、両方を同じストアに置く必要がありますか?したがって、ガイドラインはありますか?

4

4 に答える 4

2

ストアを使用する場合、すべてのオブジェクトで3つのフィールドを使用します

  • id-ストア内のすべてのアイテムで一意のID。通常、タイプとOIDの組み合わせ。
  • _type-エンティティの「タイプ」を識別する文字列値。すなわち。人、会社。この値を持つことで、ストアにクエリを実行し、すべての個人または会社を取得することができます。
  • oid-オブジェクトIDは、同じタイプのすべてのオブジェクトの中でオブジェクトを一意に識別します。すなわちデータベースID

Store APIの独自の実装(MemoryStoreを拡張)を作成する必要があることがわかりました。あなたはここでそれについてもっと読むことができます:

http://swingingcode.blogspot.com/2012/03/dojo-implementing-viewmodelstore.html

また、Javaオブジェクトをストアの実装で使用できる形式にシリアル化するJavaで記述されたエンジンについても説明しました。あなたはそれについて読むことができます

http://swingingcode.blogspot.com/2012/04/json-serialization-engine-part-i.html

http://swingingcode.blogspot.com/2012/04/json-serialization-engine-part-ii.html

于 2012-04-21T12:06:07.197 に答える
2
  1. DojoがIndexedDBストアを提供しないのはなぜですか?

    良い質問。知らない。

  2. さまざまなデータ型を格納するためにストアが使用される例は見つかりませんでした。このコンセプトをDojoストアにどのようにマッピングしますか?

    Javascriptは動的に型付けされた言語であるため、先験的に、異種のコレクションに複数のデータ型を格納することを妨げるものはありません。DojoストアAPIは、柔軟性を維持するためにここでは意図的にあいまいになっています。ハードAPIとしてではなく、幅広いガイドラインのセットとして見ています。

    メモリストアを使用する場合は、確かに異なるスキーマのオブジェクトを追加できますが、SQLテーブルと同様に、より厳密で、ストアごとに1種類のオブジェクトのみを受け入れるある種のオブジェクトストアを作成することを妨げるものはありません。

    とは言うものの、混乱を避けるために、私は自分の店を均質に保つことを好みます(私は人と会社のために別々の店を持っているでしょう)。保存するオブジェクトには階層データ(サブオブジェクト)が含まれている可能性があるため、1-Nの関係がある場合は、親オブジェクトに1つのストアを使用してすべてを保存できることに注意してください。

于 2012-04-23T14:04:16.337 に答える
0

http://dojotoolkit.org/reference-guide/1.8/dojo/store.htmlで、次のように言います

dojo / storeは、HTML5/W3CのIndexedDBオブジェクトストアAPIに基づくシンプルで実装および拡張が容易なAPIを使用してdojo/dataAPIおよびdojox/storage APIに取って代わり、統合し、改善することを目的としています。

于 2012-08-31T08:20:58.353 に答える
0

永続的なストアバックエンドについて:

dojo / store APIは単なるAPIであり、主に他のDojo / Dijitコンポーネントが準拠する必要のある「仕様」を提供し、独自のストアを構築するために使用できます。私の知る限り、dojoコア内からIndexedDBストアのようなものを提供する予定はありません。ただし、まさにそれを行うStorehouseがあります。IndexedDBストアを提供し、dojo /storeAPIを実装します。

https://github.com/jensarps/storehouse

Dojoツールキットと同じライセンスで利用可能であり、Dojo Foundationの著作権で保護されているため、ライセンスごとに安全に使用できます(私は、Dojoの寄稿者であり、CLAを登録しています)。

1店舗と2店舗について:

各dojo/storeインスタンスは、データベースというよりもテーブルのように考えてください。この場合、タイプごとに1つのストア、つまり「personStore」と「companyStore」をお勧めし、コード内の関係を処理します(IndexedDB自体はリレーショナルデータベースではありません)。

于 2013-04-16T16:41:51.337 に答える