複数のデータベースを結合してデータを表示する方法について解説します。
キャラクター情報などを1つのデータベースで管理する場合、項目数が大量に必要になり、管理しづらくなる場合があります。
そのような場合、複数のデータベースに情報を分割することで1データベース当たりの項目数を少なくすることができ、管理画面での管理がしやすくなります。
複数のデータベースに分けた情報はそれぞれのデータベースで同じ値を持つデータを用意しておくことで、検索用ショートコード(gwdb)でデータを表示する際にそれぞれのデータを結合して表示することができるようになります。
データベースの結合はデータベース管理機能および検索用ショートコード(gwdb)を応用する上級者向けの仕組みです。
実際にキャラクター情報を2つのデータベースに分割し、データベースを結合して画面に一覧を表示させる例について解説します。
また、例ではそれぞれのデータベースの「ID」項目をデータ結合の条件に使用します。
ここでは以下2つのデータベースを例として使用します。
データベース名 | 説明 |
---|---|
キャラクター基本 | 名称や説明文などの基本的な情報を管理 |
キャラクター詳細 | ステータスなどの詳細な情報を管理 |
結合条件に使用する項目には、基本的に「数値」を登録してください。
文字列の場合、うまく結合できない可能性があります。
結合する「キャラクター基本」「キャラクター詳細」の2つのテーブルにデータを登録します。
名称やアイコンなどの基本的な情報のみを登録しています。
ステータスなどの詳細情報を登録しています。
名称やアイコンなどは「キャラクター基本」データベースに登録しているため
ここでは登録していません。
例では「ID」項目をデータ結合用の項目として使用するため、以下画像のようにデータ登録した場合、「キャラクター基本」側の同じIDのデータを1つのデータとして扱うようになっています。
データベースへのデータ登録が完了したら、ショートコードを使用してそれぞれのデータベースを結合して一覧を表示させることができます。
データベースを結合して表示する場合のショートコードは通常の検索用の記述とは若干異なる為、解説します。
[gwdb キャラクター基本|キャラクター詳細:(ID,ID){キャラクター基本@@名称|キャラクター基本@@アイコン|キャラクター詳細@@攻撃力|キャラクター詳細@@防御力}]
上記ショートコードを記述すると2つのデータベースのデータが「ID」項目を結合条件に結合されて以下のような一覧表が表示されます。
検索用ショートコード(gwdb)の基本的な使い方は以下のページをご参照ください。
表示項目のオプション指定方法についてはデータベース結合がある場合でも特に記述方法に変更はありません。
▶ショートコードの使い方
データベースを指定する部分では結合元となるデータベースと結合先のデータベースをパイプ(|)で区切って記述します。
また、結合先のデータベース名の後にコロン(:)で区切り、結合元データベースと結合先データベースからそれぞれ結合条件に使用する項目をカンマ(,)区切りで指定します。
データベース名1|データベース2:(①,②)
①:データベース名1側の結合条件に使用する項目名
②:データベース名2側の結合条件に使用する項目名
同じデータべースを複数回結合することはできませんのでご注意ください。
データベースの結合を行う場合、どちらのデータベースの項目を表示するのかを判別するために項目名の前に「データベース名@@」を記述します。
※項目名の前にデータベース名の指定が無い場合、項目は表示されません。
データベース名1@@項目名|データベース名2@@項目名
例では使用していませんが、データベースの結合を行う場合は表示項目の指定と同様に項目名の前に「データベース名@@」を記述します。
※項目名の前にデータベース名の指定が無い場合、検索条件は無効となります。
データベース1@@項目名:>=100|データベース名2@@項目名:<=200
データベースを結合して一覧を表示している場合も以下のフィルター用ショートコードを利用することが可能です。
以下のショートコードを使用する場合でもデータベースの指定や項目名の指定方法は検索用ショートコード(gwdb)と同様の指定を行います。
[gwdb_filter キャラクター基本|キャラクター詳細:(ID,ID){キャラクター詳細@@属性}]
[gwdb_filter_text キャラクター基本|キャラクター詳細:(ID,ID){キャラクター基本@@名称|キャラクター詳細@@説明文}]
最近のコメント