0

Web アプリケーションを SQL データベースからキー値ストアに移行することを検討しているので、アプリを水平方向にスケーリングできます。

スキーマを移行する方法を計画しています。これを行うためのパターンがあるに違いありません。

私の考えを示すために、ミッキー マウスの論理的な例を挙げます。Bookこれは、 s、Persons、およびsを使用したリレーショナル データベースの単純なライブラリ システムBorrowEventです。を使用してBookからに参加して、誰がどの を借りたかを確認できます。PersonBorrowEventBook

Book
 - BookID
 - BookTitle

Person
 - PersonID
 - PersonName

BorrowEvent
 - BorrowEventID
 - BookID
 - PersonID

それでは、次のリファクタリングを試してみましょう。

[Key][Value]
 - ID/BookName
 - ID/PersonName
 - ID/[String]"BorrowEvent-"+[ID of BookName]+"-"+[ID of PersonName] 

これは、BorrowEvent に対してクエリを実行し、正規表現を使用して値の文字列を分割して ID を取得することによって機能します。

現在、これにはいくつかの制限があります。Authorに を追加したい場合はBook、本情報を取得するためのホップを追加する必要があります。Personに姓名を付けたい場合も同様です。

リレーショナル ストアからキーバリュー ストアへのこの変換には、パターンがあるに違いないと思います。(または複数のパターン)。ただ、何という名前かわかりません。

私の質問は次のとおりです。リレーショナル SQL データベースをキー値ストアにリファクタリングするには、どのパターンを使用すればよいですか?

仮定:

  • これは、物理的なリファクタリングではなく、論理的なリファクタリングであると想定してください。
4

1 に答える 1

0

この投稿では、次のような多くのテクニックをリストしています。

  1. 次元削減
  2. 索引表
  3. 複合キー インデックス
  4. 複合キーによる集約
  5. 逆検索 - 直接集計
  6. ツリー集約
  7. 隣接リスト
  8. マテリアライズド パス
  9. ネストされたセット
  10. ネストされたドキュメントのフラット化

    私。番号付きフィールド名

    ii. 近接クエリ

  11. バッチグラフ処理

于 2015-11-14T23:13:02.110 に答える