Web アプリケーションを SQL データベースからキー値ストアに移行することを検討しているので、アプリを水平方向にスケーリングできます。
スキーマを移行する方法を計画しています。これを行うためのパターンがあるに違いありません。
私の考えを示すために、ミッキー マウスの論理的な例を挙げます。Book
これは、 s、Person
s、およびsを使用したリレーショナル データベースの単純なライブラリ システムBorrowEvent
です。を使用してBook
からに参加して、誰がどの を借りたかを確認できます。Person
BorrowEvent
Book
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 データベースをキー値ストアにリファクタリングするには、どのパターンを使用すればよいですか?
仮定:
- これは、物理的なリファクタリングではなく、論理的なリファクタリングであると想定してください。