Technical Works

ASC Technical support site

*

マルチバリューの応用例1

   

前回、マルチバリュー型データベースのマルチバリューの概念をご説明しましたが、その応用例をご紹介したいと思います。

まずは前回と同様のマルチバリュー化した注文TBLを以下に示します。

Mtable

マルチバリューは1テーブルに対して複数設定する事が可能であるため、販売価格を追加してみます。

adPrice

こうする事で、注文テーブルの1レコードを取得するだけで商品IDと販売価格も取得する事ができるようになりました。マルチバリューに設定されたカラムはマルチバリューごとにグループを設定する事が可能です。

この場合は同じ色(表中の緑)にしていますので、同一グループということになります。例えば注文ID=001の商品ID=103とすると、販売価格「300」が取得できます。

同一グループとして設定したマルチバリューはバリューの位置が一致するため、販売価格「200」や「100」が取得されることはありません。

 

次に応用例として、配送方法を追加します。

adSend

違うグループとして設定したため、さきほど設定したグループとは異なる色にしています。

この配送方法ですが、カラムには1しか設定されていないため通常のデータベースではどういった配送方法を選択したのかが分かりません。しかしマルチバリューでは判断が可能です。

例えば1番目のバリューに値が設定されていたら「通常配送」、2番目なら「急ぎ」、3番目なら「店頭受取」のように定義(この場合の定義は紙面上などでありデータベースへの定義ではない)しておくことでどの配送方法が選択されたのかが分かります。レコードID=003の注文はバリューの2番目に1が設定されているため「急ぎ」の配送であったことが分かります。

今回は簡単な例なので、一般的なリレーショナルデータベースでもいわゆる「ステータス」などで管理することで対応は可能です。1:通常配送、2:急ぎ、3:店頭受取のように定義するということになります。

しかし、この配送方法が複数選択可能であった場合はどうでしょうか?必ずカラムを追加する必要があります。無理にステータスで管理しようと思えば可能ですが、この選択肢が大量であった場合は複雑になってしまい、管理する事が難しくなってしまいます。

マルチバリューであれば、いくら配送方法が増え、複数選択可能となっても定義したバリューの位置に「1」を設定するだけで認識可能なので非常に汎用的で簡易な対応が可能です。「カラムを追加する」という影響はシステムのサービス中、開発中問わず大きなインパクトが発生しがちですが、マルチバリューを採用する事によりそれさえも回避できるのです。

The following two tabs change content below.

honda

最新記事 by honda (全て見る)

 - AIDAM

Loading Facebook Comments ...

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


*

  関連記事

マルチバリュー型データベースとは

マルチバリューとは AIDAMは、マルチバリュー型を採用したデータベースです。 …

マルチバリューの応用例2

前回、前々回とマルチバリュー型データベースの特性などをご紹介してきましたが、今回 …

AIDAMに関するよくある質問

どのようなデータベースですか? AIDAMは一般的なリレーショナルデータベースや …