CMS:複数のデータベース・コレクションの接続について

読了目安: 3分
注:
続行する前に、データベース・コレクションについてをお読みください。
データベース内の各コレクションは独立したエンティティです。しかし、異なるコレクション内のデータを接続して、関連する情報を表示できるようにすることができます。これは、テーブル、ギャラリーリピータを使用する場合に特に便利です。

異なるコレクションに保存された情報を接続するには、2つのオプションがあります:

参照フィールド

参照フィールドを作成すると、別のコレクションへのポインタが作成され、プライマリコレクションの実際の構造でコレクション間の接続が作成されます。この接続により、プライマリコレクション内から、参照されるすべてのコレクション内のすべての情報にアクセスできるようになります。

参照フィールドを持つコレクションにデータセットを接続すると、そのデータセットは自動的に、参照されるすべてのコレクションのすべてのフィールドにアクセスできるようになります。つまり、1 つのデータセットを使用して、接続されているすべてのコレクションのフィールドにページ要素を接続できます。

参照フィールドによってデータセットをフィルタリングすることもできます。説明については以下を参照してください。
注:
動的ページのURLは、参照フィールドに基づくことはできません。

データセットのフィルタリング

データセットをフィルタリングすると、参照フィールドを使わずに、同じデータを持つフィールドを持つコレクション同士の接続を作成することができます。これにより、一方のデータセットがもう一方のデータセットに応答するように設定することができ、最初のデータセットでは、フィールド値が2番目のデータセットの現在のアイテムの同じフィールド値と一致するアイテムだけが表示されます。たとえば動的なアイテムのページでは、 フィルタリングされたデータセットが、 ページに表示されている現在のアイテムにマッチする情報を、 2番目のデータセットからすべて表示します。

覚えておいてほしいのは、この接続はそのページのデータセット間にしか存在しないということです。他のデータセットには何の影響もありません。これらのコレクションのひとつに接続された別のデータセットを追加した場合は、 接続を作成するためにもう一度フィルタリングする必要があります。 
注:
データセットは、通常のフィールドまたは参照フィールドでフィルタリングできる。

すべての仕組み

コレクションを一緒に使えるようになれば、ページを作るためのオプションが増えます。いくつかのアイデアを見てみましょう。

例えば、あなたの好きな音楽のデータベースがあり、以下のようなコレクションがあるとする。
  • アーティスト (分野: アーティスト, バイオグラフィー, 写真, ウェブサイト)
  • ジャンル (フィールド: タイトル、説明)
  • 曲(フィールド:タイトル、アーティスト[参照フィールド]、ジャンル、ビデオURL) 

Songsデータセットに基づいて作成できるページのアイデアをいくつか紹介します。Artistsコレクションのフィールドをどのように含めることができるかに注意してください。
  • Songsコレクションに接続された通常のページです。
    このページには、Artistsコレクションにあるアーティストの写真を含む、あなたのコレクションにあるすべての曲がリストされたリピーターがあります。 
  • Songsのデータセットを持つ動的なアイテムページ。
    このページには、曲のタイトルとビデオ、アーティストの名前と経歴が表示されます。

どちらの場合も、参照フィールドを使うことで、アーティスト・コレクションに保存されている情報(写真や経歴)を、そのコレクションのデータセットを添付することなく取得できることに注意してください。

では、2つ以上のフィルタリングされたデータセットを使ったアイデアを見てみましょう。
  • Artistsデータセットと、"Artist "フィールドでフィルタリングされたSongsデータセットを持つ動的なアイテムページ。
    このページには、各アーティストの名前と写真、そして全楽曲のリストが表示されます。

  • このページには、Genresデータセットに接続されたリピーターがあり、すべてのジャンルをリストアップしている。各リピーター項目には、Songsデータセットに接続されたテーブルがある。このテーブルには、各ジャンルにマッチする曲と、各曲のアーティストの名前と写真がリストされている。
    このページには2つのデータセットがありますが、3つのコレクションからの情報を表示できることに注意してください。アーティストの写真はArtistsコレクションからのもので、参照フィールドがあるので利用できる。

これは役に立ったか?

|