一意の列、参照列、リレーションシップの適用 (連鎖削除と制限削除) を組み合わせて使用することで、リスト間のリレーションシップを作成できます。これにより、洗練されたビジネス ソリューションを作成できるようになり、データの一貫性も維持できます。
Microsoft SharePoint、Microsoft 365 のリストアプリ、または Teams でリストを作成できます。 Microsoft Teams のリストの使用を開始する方法について説明します。
リストのリレーションシップの概要
以下のセクションでは、ソースリストとターゲットリストの関係の作成、一意の列と参照列の作成、リストリレーションシップの動作の適用に関する重要な背景情報について説明します。 プライマリおよびセカンダリ参照列を追加する方法、リストリレーションシップ内のアイテムを表示、編集、削除する方法、およびリストのアイテム数が多い場合にリストのリレーションシップを管理する方法について説明します。
一意の列と参照列を使用して、書籍をコースに割り当てる
-
ソースリストは "リーディングリスト" と呼ばれ、ターゲットリストは "コース" と呼ばれます。
-
各リストには、正しいデータが一致していることを確認するための一意の列が含まれています。
-
ソースリスト (リーディングリスト) のプライマリ参照列は、一致する値に基づいて、ターゲットリスト (コース) 内の ID 列を検索します。
-
ソースリストのセカンダリ参照列によって、ターゲットリストから [コース名] 列が自動的に挿入されます。
一意の列を作成する
列を作成する際に、一意の値を列に含めるかどうかを指定できます。 これは、その列にリストの値が重複していないことを意味します。 重複した値を含むリスト項目を追加したり、既存のリスト項目を変更して重複値を作成したり、削除された値が重複している場合は、ごみ箱からアイテムを復元したりすることはできません。 さらに、ソースリストで参照列を作成し、その列を一意に定義した場合、ターゲットリストの列に重複する値が含まれていないことも必要です。
注: 一意性の大文字と小文字は区別されません。 たとえば、ORD-231 と ORD-231 は重複値と見なされます。
また、一意の列にはインデックスを作成する必要があります。 一意の列を作成すると、インデックスを作成するよう求めるメッセージが表示され、[OK] をクリックするとインデックスが自動的に作成されます。 一意の列にインデックスが作成されると、最初に重複する値を許可するように列を再定義しない限りは、インデックスを削除できません。
一意の列の作成に使用できる列と使用できない列の種類を次の表に示します。
サポートされている列の種類 |
サポートされていない列の種類 |
---|---|
1 行テキスト |
複数行テキスト |
選択肢 (単一値) |
選択肢 (複数値) |
数値 |
集計値 |
通貨 |
ハイパーリンクまたは画像 |
日付と時刻に関する数式 |
ユーザー設定の列 |
参照 (単一値) |
参照 (複数値) |
Person (単一値) |
人 (複数値) |
Yes/No |
参照列を作成する
2つのリストの間にリレーションシップを作成するには、ソースリストで、ターゲットリストの1つ以上の一致する値を取得 (または "検索") する参照列を作成します。 この参照列 (プライマリ列) を作成すると、引き続きターゲットリストからソースリストに列 (セカンダリ列) を追加することができます。 追加のセカンダリ列には、以下で説明するようにサポートされているデータ型が必要です。
次の表は、ルックアップ列を作成するために使用できる列の種類をまとめたものです。
サポートされている列の種類 |
サポートされていない列の種類 |
---|---|
1 行テキスト |
複数行テキスト |
数値 |
通貨 |
日付と時刻に関する数式 |
ユーザーまたはグループ |
集計値 |
|
ハイパーリンクまたは画像 |
|
ユーザー設定の列 |
|
Yes/No |
|
選択肢 |
|
ルックアップ |
作成できる参照列には、参照整合性が適用されたリレーションシップを持つ参照列と、参照整合性が適用されていないリレーションシップを持つ参照列の 2 種類があります。
参照整合性が適用されたリレーションシップを持つ参照列
参照整合性が適用されたリレーションシップを持つ参照列では、次のいずれかの方法で、ターゲット リストにおいて単一の値を参照してデータの整合性を維持できます。
連鎖削除 ターゲットリストのアイテムが削除されると、関連するアイテムまたはソースリストのアイテムも削除されます。 この場合、1つのデータベーストランザクションの一部としてすべての関連アイテムが削除されるようにする必要があります。 たとえば、ターゲットリストの注文を削除した場合、ソースリストの対応する注文項目も削除されます。 注文アイテムに対応する順序がない場合は、後で混乱を招く可能性がある "孤立した" 注文アイテムが作成されます。
制限削除 ターゲットリストのアイテムを削除しようとしたときに、ソースリストに関連アイテムが1つ以上含まれていると、ターゲットリストのアイテムを削除できません。 この場合、ターゲットリストの関連アイテムが保持されていることを確認します。 たとえば、あるユーザーがターゲットリストから注文項目を削除しようとした場合、その注文が保留中になっている可能性があり、注文が処理されるまでその削除操作が行われないようにする必要があります。 注文の完了に影響を与える可能性があるため、顧客の注文が誤って削除されないようにします。
-
連鎖削除操作により、すべての関連アイテムが1つのデータベーストランザクションで削除されます。 たとえば、リスト ID が1のコースリスト内のアイテムを削除した場合、削除されたアイテムを参照している閲覧リストのアイテムも削除されます。
-
制限削除操作を行うと、関連するソースリストアイテムが存在する場合、ターゲットリスト内のアイテムが削除されることはありません。 そのため、[コース] リストのリスト ID が3であるアイテムを削除しようとしても、閲覧リストの1つ以上のアイテムによってまだ参照されているため、この操作を行うことはできません。
リストのリレーションシップの動作を適用することで、データを有効な状態に維持し、問題の原因となっている不整合を回避できます。
注: 参照整合性が適用されたリレーションシップの作成または変更を実行するには、リストの権限管理が必要です。
リレーションシップを適用する参照列にもインデックスを作成する必要があります。 リレーションシップを適用する参照列を作成すると、インデックスを作成するように求められる場合があります。 [ OK]を選択すると、インデックスが自動的に作成されます。 リレーションシップを適用する参照列にインデックスがある場合は、適用されたリレーションシップを最初に削除しない限り、その列からインデックスを削除することはできません。
参照整合性が適用されていないリレーションシップを持つ参照列
参照整合性が適用されていないリレーションシップを持つ参照列では、ターゲットリストのソースリストから1つまたは複数の値をルックアップすることができます。 ソースリストのアイテムを削除する権限がある場合、その他の削除の制限や、ターゲットリストで発生する削除操作はありません。
リストのリレーションシップにおけるアイテムを表示および編集する
リストのリレーションシップを作成する利点の1つは、2つ以上のリストの列を1つのページに表示して編集できることです。 ソース リストで参照列を作成すると、プライマリ列でターゲット リストの列の値が表示されますが、ターゲット リストから取得した追加のセカンダリ列が、プライマリ列やその他のソース リストの列の横に表示されるように指定することもできます。
注: プライマリ列を作成する場合は、複数の値の受け入れと、プライマリ列に関連するその他の列を指定する必要があります。 リストから列の名前を変更することはできますが、他の機能を追加することはできません。 複数の値に変更するには、リストを作成した後で列を追加したり、その他のオプションを設定したりするには、[ 設定>リストの設定] に移動します。
[プライマリ列] の値は、ターゲットリスト内のそのアイテムのすべての列値を表示するために選択できるリンクです。 ターゲットリストの各セカンダリ列の値がソースリスト列にテキストとして表示されます。 複数の値を持つルックアップ列を作成する場合、ターゲットリストの各列には、プライマリとセカンダリのどちらでも、対応する複数の値がセミコロンで区切られて表示されます。 リストビューでは、これらのプライマリ列とセカンダリ列を、ソースリストの列と同じように操作できます。たとえば、追加、削除、フィルター処理、並べ替えを行うことができます。
プライマリ列名は、参照列を作成するときに指定した名前です。 既定では、各セカンダリ列名は <ソース リストのプライマリ列名>: <ターゲット リストの列名> という標準の名前付け規則に従います。 このため、プライマリ列名を変更すると、すべてのセカンダリ列名も変更されます。 一方で、既定のセカンダリ列名と説明は、自分にとってよりわかりやすいものに変更できます。
-
1. 複数の値を持つプライマリ参照列です。
-
2. 複数の値を持つセカンダリ参照列です。
-
3. 列名は、音色の既定の名前 ( タイトル から 音色) に変更されました。
注: 列名 ID は既定では使用できますが、非表示になっています。 使用するには、[表示オプション] を選択し、[現在のビューの編集] を選択します。 スクロールして 表示 ボックスをオンにします。
多くのアイテムが含まれているリストのリレーションシップを管理する
参照列、一意の列、参照整合性が適用されたリレーションシップを持つ列を使用してリストのリレーションシップを作成すると、リソースのしきい値や制限に到達する場合があり、次の状況ではブロックされる可能性があります。
-
[リスト ビューのしきい値] の値を超える数のアイテムがある既存のリストで列を一意にする場合 (ただし、リストに 1 つのアイテムを追加するとリストのアイテムの数が [リスト ビューのしきい値] の値を超える操作は、通常、ブロックされません)。
-
[リスト ビューのしきい値] よりも多くのアイテムがあるリスト内の参照フィールドで連鎖削除や制限削除を有効にした場合。
-
リストビュー参照のしきい値を超えました。既定では [12 参照列] に設定されています。
-
削除操作におけるアイテムの数が 1,000 個を超えた場合。
複数のアイテムを含むリストを管理する方法について詳しくは、「 アイテム数が多いリストとライブラリを管理する」をご覧ください。
一意の列を作成または変更する
警告: 次の操作は実行できません。
-
リスト内に、アイテムレベルの権限が定義された一意の列を作成します。
-
リストに一意の列が含まれている場合は、リストからリストアイテムへのアクセス許可の継承を解除します。
-
一意の列を作成するか、固有の権限を持つアイテムまたはコンテンツ承認が有効になっているアイテムを含むリスト内で一意の列を変更します。
新しい列を追加するには、次の手順を実行します。
-
リストを含むサイトに移動します。
-
サイト上のリストの名前を選択するか、[
設定] を選択し、[サイトコンテンツ] を選択して、リストの名前を選択します。
-
リストの上部にある列見出しを見つけます。 列見出しの右にある [ + 列の追加 ] を選択します。
-
ドロップダウンに、作成できるさまざまな種類の列が表示されます。 次のいずれかの列の種類を選びます。
-
1 行テキスト
-
複数行テキスト
-
場所
-
数
-
Yes/No
-
担当者
-
日付
-
選択肢
-
ハイパーリンク
-
画像
-
通貨
注: 参照列を作成する場合は、ドロップダウンから [ その他] を選択します。 列に名前を入力し、[列のオプション] 画面で検索の種類を選択します。 この後、手順5と6を省略できます。
-
-
ページの右側に表示されるウィンドウに、列の名前と情報を追加します。
-
[ 一意の値の適用]をオンにします。
列でサポートされていないデータ型を選択した場合、[ 一意の値を適用] は表示されません。
-
一意の列のインデックスを削除することはできません。 インデックスを削除するには、最初に列を一意の列から重複した値を許可する列に変更してから、インデックスを削除する必要があります。
-
既存の列を、重複する値から一意の値に変更しようとしても、既存の列に重複する値が含まれていると変更できない場合があります。 まず、重複する値をすべて削除してから、重複する値を許可する列を [一意の列] に変更する必要があります。
-
一意の列のデータ型を変更する場合は、次の操作を行います。
-
列の重複値を許可するように変更する
-
インデックスを削除する
-
列をサポートされている他のデータ型に変更する
-
次に、列を一意にします。
-
参照列を作成する
以下の手順では、プライマリ列を表示する検索列と、必要に応じてセカンダリ列をリストに設定する方法について説明します。 プライマリ列のインデックスを作成することはできますが、セカンダリ列 (またはフィールド) はプライマリによって制御されているため、一意またはインデックスにすることはできません。
-
リストを含むサイトに移動します。
-
サイトナビゲーションでリストの名前を選択するか、[
設定] を選択し、[サイトコンテンツ] を選択して、リストの名前を選択します。
-
リストの上部にある列見出しを見つけます。 列見出しの右にある [ + 列の追加 ] を選択します。
-
ドロップダウンから [ その他] を選択します。
-
[ この列の情報の種類] で、[ 参照] (このサイトにある情報)を選びます。
-
[ 情報の取得先] フィールドで、ターゲットリストを選択します。
-
[ この列] フィールドで、プライマリ列を選択します。
-
[ 列を追加して、追加する各追加フィールドを表示] で、列名の横にあるチェックボックスをオンにします。 表示されているのは、データ型がサポートされている列のみです。
-
後でセカンダリ列を追加または削除する場合は、参照列を変更して、必要な選択を行います。
注: セカンダリ列のインデックスを作成したり、セカンダリ列を一意にしたりすることはできません。
-
参照列を既定のビューで表示するには、[既定のビューに追加] をクリックします。
-
適用されるリレーションシップを作成するには、[ リレーションシップの動作を適用 する] を選択し、[削除の制限 ] または [ 連鎖削除] を選択します。
-
[OK] を選択します。