Applies ToSharePoint Foundation 2010 SharePoint Server 2010

重要:  この記事は機械翻訳されています。機械翻訳についての「免責事項」をお読みください。この記事の英語版を参照するには、ここをクリックしてください。

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

この記事の内容

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

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

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

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

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

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

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

ページの先頭へ

一意の列を作成する

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

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

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

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

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

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

1 行テキスト

複数行テキスト

選択肢 (単一値)

選択肢 (複数値)

数値

集計値

通貨

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

日付と時刻

ユーザー設定の列

参照 (単一値)

参照 (複数値)

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

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

はい/いいえ

ページの先頭へ

参照列を作成する

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

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

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

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

1 行テキスト

通貨

数値

参照

日付と時刻

ユーザーまたはグループ

集計

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

複数行テキスト

あり/なし

Choice

ユーザー設定の列

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

ページの先頭へ

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

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

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

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

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

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

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

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

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

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

ページの先頭へ

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

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

ページの先頭へ

リストのリレーションシップにおけるアイテムを表示および編集する

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

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

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

複数値を持つ参照列

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

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

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

ページの先頭へ

リストのリレーションシップにおけるアイテムやリストを削除する

リストのリレーションシップにおけるアイテムやリストを削除する際、特に連鎖削除と制限削除のリレーションシップがリストに適用されている場合は、削除によってソース リスト、ターゲット リスト、および関連する列にどのような影響が及ぶかを知っておく必要があります。データの整合性維持のため、削除権限があってもアイテムは削除できないようになっている場合があります。こうしたアイテムを削除するには、削除トランザクションを実行するときに、バックエンドのデータベースでデータを一時的にロックする必要があり、これは完了するのに時間がかかります。

次のセクションでは、削除による影響についてより詳しく説明します。

参照整合性が適用されていないリレーションシップを持つソース リストまたはターゲット リストのアイテムを削除する    : 参照整合性が適用されていないリレーションシップを持つソース リストやターゲット リストのアイテムを削除すると、次のようになります。

  • ソース リストやターゲット リストからアイテムを削除できます。

  • ターゲット リストやソース リストにある関連するアイテムは削除されません。

制限削除のリレーションシップが適用されたソース リストのアイテムを削除する    : 制限削除のリレーションシップが適用されたソース リストのアイテムを削除すると、次のようになります。

  • ソース リストからアイテムを削除できます。

  • ターゲット リストにある関連するアイテムは削除されません。

制限削除のリレーションシップが適用されたターゲット リストのアイテムを削除する    : 制限削除のリレーションシップが適用されたターゲット リストのアイテムを削除すると、次のようになります。

  • 制限削除操作を適用するために列が使用されているというエラー メッセージが表示されます。

  • ターゲット リストのアイテムの削除権限を持っている場合でも、そのアイテムは削除できません。

連鎖削除のリレーションシップが適用されたソース リストのアイテムを削除する    : 連鎖削除のリレーションシップが適用されたソース リストのアイテムを削除すると、次のようになります。

  • ソース リストのアイテムを削除できます。

  • ターゲット リストにある関連するアイテムは削除されません。

連鎖削除のリレーションシップが適用されたターゲット リストのアイテムを削除する    : 連鎖削除のリレーションシップが適用されたターゲット リストのアイテムを削除すると、次のようになります。

  • ターゲット リストのアイテムと、ソース リストの関連するすべてのアイテムを削除できます。

  • 削除操作は、データベースのトランザクションとして実行されるので、どちらのリストも有効な状態のままで操作全体を完了する必要があります。

    注: ドキュメント ライブラリでは、ソース リストのアイテムがチェックアウトされたファイルの場合、両方のリストのアイテムが削除されます。

参照整合性が適用されていないリレーションシップを持つソース リストまたはターゲット リストを削除する    : 参照整合性が適用されていないリレーションシップを持つソース リストとターゲット リストを削除すると、他のリストと同様に、ソース リストまたはターゲット リストを削除できます。

連鎖削除と制限削除のリレーションシップが適用されたソース リストまたはターゲット リストを削除する    : 連鎖削除と制限削除のリレーションシップが適用されたソース リストまたはターゲット リストのアイテムを削除すると、次のようになります。

  • ソース リストまたはターゲット リストに他のリストとのリレーションシップが 1 つ以上あるという警告が表示され、警告メッセージ内にそのリストが表示されます。

  • ソース リストまたはターゲット リストは削除できません。

ごみ箱から復元する    : サイトでごみ箱が有効になっている場合は、削除されたアイテムはすべてごみ箱に保存され、必要に応じて復元することができます。アイテムが連鎖削除操作の一環として 1 つのデータベースのトランザクションで削除された場合は、リレーションシップ内のすべてのアイテムが表示され、それらも同様に復元できます。ただし、アイテムを復元するには、元のターゲット リストとソース リストは削除しないようにする必要があります。

まとめると、次のようになります。

  • ターゲット リストのアイテムが削除されると、連鎖削除操作によって、ソース リストの関連するアイテムもすべて削除されます。

  • ソース リストに関連するアイテムが 1 つ以上ある、ターゲット リストのアイテムを削除しようとすると、制限削除操作によって、ターゲット リストのアイテムを削除できなくなります。

  • 参照整合性が適用されたリレーションシップに属するリストは削除できません。

ページの先頭へ

多くのアイテムが含まれているリストのリレーションシップを管理する

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

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

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

  • 既定では 8 個の参照列である、[リスト ビュー参照のしきい値] を超えた場合。

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

しきい値と制限、多くのアイテムがあるリストとライブラリの管理の詳細については、「参照」セクションのリンク先を参照してください。

ページの先頭へ

Office ★ などの編集プログラムを使用する SharePoint Designer 2010

SharePoint テクノロジと互換性のある編集プログラムを使用することを検討してください。 たとえば、Microsoft Office SharePoint Designer 2010 には、追加の機能が用意されているため、リストのリレーションシップを操作するのに役立ちます。 リスト ビュー Web パーツまたはデータ フォーム Web パーツを関連リスト Web パーツに接続すると、参照ターゲット リストの複数の値を上下に並べて表示できます。 また、リスト スキーマ エディターを使用すると、フィールドの検証の一環として、挿入操作を制限することもできます。

Office SharePoint Designer 2010 について詳しくは、製品のヘルプをご覧ください。

ページの先頭へ

一意の列と参照列を作成する方法

次のセクションでは、一意の列と参照列を作成する手順について説明します。

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

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

  1. 一意の列を追加するリストが含まれているサイトに移動します。

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

    注: サイトの外観とナビゲーションは大幅に変更されている場合があります。コマンド、ボタン、リンクなどのオプションの場所がわからない場合は、管理者に問い合わせてください。

  3. リボンで、[リスト] タブの [ビューの管理] で [列の作成] をクリックします。

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

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

    • 1 行テキスト

    • 複数行テキスト

    • 選択肢

    • 数値

    • 通貨

    • 日付と時刻

    • はい/いいえ

    • 参照 (単一値)

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

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

注: .

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

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

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

ページの先頭へ

参照列を作成する

  1. 参照列を追加するリストが含まれているサイトに移動します。

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

    注: サイトの外観とナビゲーションは大幅に変更されている場合があります。コマンド、ボタン、リンクなどのオプションの場所がわからない場合は、管理者に問い合わせてください。

  3. リボンで、[リスト] タブの [ビューの管理] で [列の作成] をクリックします。

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

  5. [この列への情報の入力を必須にする] で、[参照] をクリックします。

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

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

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

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

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

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

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

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

ページの先頭へ

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。