一意の列と参照列を使用してリストのリレーションシップを作成する

一意の列と参照列を使用してリストのリレーションシップを作成する

一意の列、参照列、リレーションシップの適用 (連鎖削除と制限削除) を組み合わせて使用することで、リスト間のリレーションシップを作成できます。これにより、洗練されたビジネス ソリューションを作成できるようになり、データの一貫性も維持できます。

リストのリレーションシップの概要

これ以降のセクションでは、重要な基本情報として、ソース リストとターゲット リストの間のリレーションシップを作成すること、一意の列と参照列を作成すること、リストのリレーションシップの動作を実行すること、プライマリ参照列とセカンダリ参照列を追加すること、リストのリレーションシップ内のアイテムを表示、編集、削除すること、リストに多くのアイテムがある場合にリストのリレーションシップを管理すること、そして Microsoft SharePoint Designer 2013 などの編集プログラムを使用した場合の付加的なメリットについて説明します。

リストのリレーションシップの概要
ギフトの注文処理に一意の列と参照列を使用している例を次に示します。

1. [アイテム] リストがソース リスト、[注文] リストがターゲット リストです。

2. 各リストには、正しいデータを照合するための一意の列が含まれています。

3. ソース リストのプライマリ参照列では、一致した値に基づいて、ターゲット リストの注文 ID 列を "参照" します。

4. ソース リストのセカンダリ参照列では、ターゲット リストから注文の "説明" 列を自動的に挿入します。

列を作成する際に、一意の値を列に含めるかどうかを指定できます。つまり、一意の値を含める場合、リストのその列には重複する値を格納できません。重複する値を含むリスト アイテムを追加することはできず、また、既存のリスト アイテムを重複する値に変更したり、ごみ箱から重複する値のアイテムを復元することはできません。さらに、ソース リストで参照列を作成して、その列を一意になるように定義する場合は、ターゲット リストの列に重複する値を含めないでください。

注: 大文字と小文字は区別されないため、たとえば、ORD-231 と ord-231 は重複する値と見なされます。

また、一意の列にはインデックスを作成する必要があります。一意の列を作成すると、インデックスを作成するよう求めるメッセージが表示され、[OK] をクリックするとインデックスが自動的に作成されます。一意の列にインデックスが作成されると、最初に重複する値を許可するように列を再定義しない限りは、インデックスを削除できません。

一意の列の作成に使用できる列と使用できない列の種類を次の表に示します。

サポートされている列の種類

サポートされていない列の種類

1 行テキスト

複数行テキスト

選択肢 (単一値)

選択肢 (複数値)

番号

集計値

通貨

ハイパーリンクまたは画像

日付と時刻に関する数式

ユーザー設定の列

参照 (単一値)

参照 (複数値)

ユーザーまたはグループ (単一値)

ユーザーまたはグループ (複数値)

Yes/No

2 つのリスト間のリレーションシップを作成するには、ターゲット リストから 1 つ以上の値を取得 ("参照") する参照列をソース リストに作成します。値の取得は、ターゲット リストの値とソース リストの参照列の値とが一致した場合に行われます。この参照列 (プライマリ列) の作成後、ターゲット リストからソース リストに他の列 (セカンダリ列) を追加できますが、これは、追加する列に、下記のサポートされているデータ型が使用されている場合のみ可能です。

参照列の作成に使用できる列と使用できない列の種類を次の表に示します。

サポートされている列の種類

サポートされていない列の種類

1 行テキスト

複数行テキスト

数値

通貨

日付と時刻に関する数式

ユーザーまたはグループ

集計値

ハイパーリンクまたは画像

ユーザー設定の列

はい/いいえ

選択肢

参照

作成できる参照列には、参照整合性が適用されたリレーションシップを持つ参照列と、参照整合性が適用されていないリレーションシップを持つ参照列の 2 種類があります。

参照整合性が適用されたリレーションシップを持つ参照列

参照整合性が適用されたリレーションシップを持つ参照列では、次のいずれかの方法で、ターゲット リストにおいて単一の値を参照してデータの整合性を維持できます。

連鎖削除    : ターゲット リスト内のアイテムが削除されると、ソース リスト内の関連する 1 つ以上のアイテムも削除されます。この場合、すべての関連アイテムが 1 つのデータベース トランザクションの一環として削除されるようにする必要があります。たとえば、ターゲット リストから注文を 1 つ削除した場合に、ソース リスト内の対応する注文アイテムも削除されるようにすることができます。注文アイテムに対応する注文がないと、そのアイテムは "孤立した" 注文アイテムになり、後に混乱を招くことになります。

制限削除    : ターゲット リストから単一のアイテムを削除しようとしても、そのアイテムの関連アイテムがソース リストに 1 つ以上あると、ターゲット リストからそのアイテムを削除することはできません。この場合、ターゲット リスト内の関連アイテムが保持されるようにする必要があります。たとえば、ターゲット リストから、顧客がまだ保留している注文アイテムをだれかが削除しようとしている場合に、注文が処理されるまで削除操作が行われないようにすることができます。顧客の注文が誤って削除されると、注文を完了できないおそれがあります。

リストのリレーションシップを適用します。

1. 連鎖削除の操作が実行されると、1 つのデータベース トランザクションですべての関連アイテムが削除されます。

2. 制限削除の操作では、ソース リストに関連アイテムが存在する場合に、ターゲット リストのアイテムが削除されるのを防ぎます。

つまり、リストのリレーションシップの動作を適用することで、データを有効な状態のまま保持し、今後問題を引き起こす可能性のある不一致を防ぐことができます。

注: 参照整合性が適用されたリレーションシップの作成または変更を実行するには、リストの権限管理が必要です。

リレーションシップを適用する参照列にもインデックスを作成する必要があります。リレーションシップを適用する参照列を作成すると、インデックスを作成するよう求めるメッセージが表示され、[OK] をクリックすると自動的にインデックスが作成されます。リレーションシップを適用する参照列にインデックスを作成した場合は、最初に参照整合性が適用されたリレーションシップを削除しない限り、その列からインデックスを削除することはできません。

参照整合性が適用されていないリレーションシップを持つ参照列

参照整合性が適用されていないリレーションシップを持つ参照列では、ソース リストから、ターゲット リストの 1 つ以上の値を参照できます。また、ソース リストのアイテムを削除しても、リストの削除権限がユーザーにある場合、ターゲット リストでさらなる削除制限が適用されることも、削除操作が行われることもありません。

リストのリレーションシップを作成するメリットの 1 つとして、1 つのページで、複数のリストの列を表示して編集できることが挙げられます。ソース リストで参照列を作成すると、プライマリ列でターゲット リストの列の値が表示されますが、ターゲット リストから取得した追加のセカンダリ列が、プライマリ列やその他のソース リストの列の横に表示されるように指定することもできます。

プライマリ列の値はリンクになっていて、クリックすると、ターゲット リストにおけるそのアイテムのすべての列の値が表示されます。ターゲット リストにある各セカンダリ列の値は、ソース リストの列でテキストとして表示されます。複数の値で参照列を作成した場合は、ターゲット リストから取得した (プライマリとセカンダリ両方の) 各列で、複数の対応する値がセミコロンで区切られて表示されます。これらのプライマリ列やセカンダリ列は、リスト ビューで、ソース リストの列とほとんど同じように操作できます。たとえば、追加、削除、フィルター処理、並べ替えが可能です。

プライマリ列名は、参照列を作成するときに指定した名前です。既定では、各セカンダリ列名は <ソース リストのプライマリ列名>: <ターゲット リストの列名> という標準の名前付け規則に従います。このため、プライマリ列名を変更すると、すべてのセカンダリ列名も変更されます。一方で、既定のセカンダリ列名と説明は、自分にとってよりわかりやすいものに変更できます。

複数値を持つ参照列

1. 複数の値を持つプライマリ参照列です。

2. 複数の値を持つセカンダリ参照列です。

3. 列名が既定の名前 [GetID: タイトル] から [楽器] に変更されました。

参照列、一意の列、参照整合性が適用されたリレーションシップを持つ列を使用してリストのリレーションシップを作成すると、リソースのしきい値や制限に到達する場合があり、次の状況ではブロックされる可能性があります。

  • [リスト ビューのしきい値] の値を超える数のアイテムがある既存のリストで列を一意にする場合 (ただし、リストに 1 つのアイテムを追加するとリストのアイテムの数が [リスト ビューのしきい値] の値を超える操作は、通常、ブロックされません)。

  • [リスト ビューのしきい値] よりも多くのアイテムがあるリスト内の参照フィールドで連鎖削除や制限削除を有効にした場合。

  • リスト ビューのルックアップしきい値は 12 の参照列を超えています。

  • 削除操作におけるアイテムの数が 1,000 個を超えた場合。

アイテム数が多いリストの管理の詳細については、多数のアイテムがリストとライブラリを管理するを参照してください。

方法: 一意の列を作成または変更する

警告: アイテムごとの権限が定義されているリストでは、一意の列を作成できません。また、リストに一意の列が含まれている場合、リストからリスト アイテムへの権限の継承を解消することはできません。一意の権限のあるアイテムを含むリストやコンテンツの承認を有効にしたリストでは、一意の列を作成したり、列を一意の列に変更したりすることはできません。ライブラリに一意の列が含まれる場合は、[エクスプローラーで開く] を使用しても、そのライブラリにファイルをコピーできません。

  1. リストを含むサイトに移動します。

  2. サイドリンク バーでリストの名前をクリックするか、[設定] メニュー Office 365 の [設定] ボタン の [すべてのサイト コンテンツの表示] をクリックしてから、リスト セクションの下でリストの名前をクリックします。

  3. [リスト]、[列の作成] の順にクリックします。

  4. [列名] ボックスに、列の名前を入力します。

  5. [この列の情報の種類] で、次のいずれかをクリックします。

    • 1 行テキスト

    • 複数行テキスト

    • 選択肢

    • 数値

    • 通貨

    • 日付と時刻に関する数式

    • はい/いいえ

    • 参照 (単一値)

    • ユーザーまたはグループ (単一値)

  6. [列の追加設定] セクションの [固有の値を適用する] で [はい] をクリックします。
    サポートされていないデータ型を選択した場合、または複数の値を含められる参照列を作成している場合は、[固有の値を適用する] は表示されません。

  • 一意の列のインデックスを削除することはできません。インデックスを削除する場合は、まず、一意の列から重複する値を許可する列に変更してから、インデックスを削除します。

  • 既存の列を、重複する値から一意の値に変更しようとしても、既存の列に重複する値が含まれていると変更できない場合があります。この場合は、まず重複する値をすべて削除してから、重複する値を許可する列を一意の列に変更する必要があります。

  • 一意の列のデータ型を変更する場合は、重複する値を許可するように列を変更し、インデックスを削除して、列をサポートされている他のデータ型に変更してから、一意の列にします。

方法: 参照列を作成する

次の手順に沿って、プライマリ列を表示する列と (オプション) をリストに列にするルックアップを設定します。プライマリ列にインデックスを作成することができますが、第 2 の列 (またはフィールド) が、プライマリによって制御されます、ため一意であるか、またはインデックスが設定されました。

  1. リストを含むサイトに移動します。

  2. サイド リンク バーで、または [設定] メニューの [ Office 365 の [設定] ボタン リストの名前をクリックしてのすべてのサイト コンテンツの表示] をクリックし、[リスト] セクションで、[リストの名前] をクリックします。

  3. リスト] をクリックし、[列の作成] をクリックします。

  4. [列名] ボックスに、列の名前を入力します。

  5. [この列の情報の種類] で、[参照] をクリックします。

  6. [情報の取得先] ボックスで、ターゲット リストを選びます。

  7. [この列] ボックスで、プライマリ列を選びます。

  8. [列を追加して、これらの各追加フィールドを表示] で、追加する各セカンダリ列名の横にあるチェック ボックスをオンにします。表示されているのは、データ型がサポートされている列のみです。

  9. 後からセカンダリ列を追加または削除する場合は、参照列を変更して、必要な選択を行います。

    注: セカンダリ列については、インデックスを作成することも、一意の列にすることもできません。

  10. 参照列を既定のビューで表示するには、[既定のビューに追加] をクリックします。

  11. 参照整合性が適用されたリレーションシップを作成するには、[リレーションシップの動作を実行する] を選択し、[制限削除] または [連鎖削除] をクリックします。

  12. [OK] をクリックします。

方法: 表示/編集フォームでリレーションシップを作成する

参照列を作成した後で、ソース リストの関連するデータが表示されるように、ターゲット リストの表示フォームや編集フォームを変更できます。たとえば、参照列の値を渡すことで、[注文] リストの表示ページや編集ページを編集し、関連するアイテム リストを追加して、2 つの対応するリスト ビュー Web パーツを自動的に接続できます。

  1. ターゲット リスト (たとえば、注文) の [リスト] タブをクリックし、フォーム Web パーツ] セクションの [リストのカスタマイズ] をクリックし、[既定の表示フォーム] または [既定の編集フォーム] をクリックします。

  2. [メイン] の Web パーツ領域で、[Web パーツの追加] をクリックします。

  3. [挿入] をクリックして、関連リストをクリックし、関連リスト (たとえば、アイテム) を選択します。

    注: 自身が [アイテムの表示] アクセス許可を持つリストのみが表示されます。

2 つのリストは自動的に接続されます。ページを保存すると、[注文] リストのアイテムを表示または編集するときに、[アイテム] リストの関連するアイテムも表示されます。

ページの先頭へ

注記: 

  • 機械翻訳についての免責事項: この記事の翻訳はコンピューター システムによって行われており、人間の手は加えられていません。マイクロソフトでは、英語を話さないユーザーがマイクロソフトの製品、サービス、テクノロジに関するコンテンツを理解するのに役立てるため、こうした機械翻訳を提供しています。記事は機械翻訳されているため、用語、構文、文法などに誤りがある場合があります。

  • この記事の英語版を参照するには、ここ をクリックしてください。Microsoft コミュニティの他のメンバーと一緒に、Community Translation Framework (CTF) を使ったこの記事の改善にご協力ください。記事内の文章にマウス ポインターを合わせて、CTF ウィジェットの [翻訳を改善します] をクリックしてください。CTF の詳細については、ここ をクリックしてください。CTF を使用すると弊社の サービス利用規約 に同意したことになります。

スキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×