---
sourceDocument: Xanadu Now Platform の管理
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ja-JP/xanadu/platform-administration

 Release :

    - xanadu

ft:locale :

    - ja-JP

ft:publication_title :

    - Xanadu Now Platform の管理

ft:clusterId :

    - platadm

bundleId :

    - platadm

workflow :

    - Platform


---

# テーブル拡張とクラス

# テーブル拡張とクラス {#ariaid-title1}

* リリースバージョン: Xanadu
* 
* 更新日 2024年08月01日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：6分

1 つまたは複数の子テーブルがフィールドとレコードを親テーブルと共有できるようにします。アドミニストレーターとアプリケーション開発者は、テーブルの作成中にのみテーブルを拡張できます。  
アドミニストレーターとアプリケーション開発者は通常、テーブルを拡張して、情報を共有する一連の関連レコードを作成します。たとえば、ベースシステムでは、タスクテーブルと構成アイテムテーブルに複数の拡張があります。{#table-extension-and-classes__table_v34_p1d_ty__entry__2}

| 元のテーブル | 元のテーブルから拡張した関連テーブル |
|-|-|
| タスク \[task\] | * インシデント \[incident\] * 問題 \[problem\] * 変更要求 \[change_request\] {#table-extension-and-classes__ul_s4j_w1d_ty} |
| 構成アイテム \[cmdb_ci\] | * アプリケーション \[cmdb_ci_appl\] * コンピューター \[cmdb_ci_computer\] * データベース \[cmdb_ci_database\] {#table-extension-and-classes__ul_mnz_bbd_ty} |
[表 : 1. ベースシステムのサンプル拡張テーブル]

{#table-extension-and-classes__table_v34_p1d_ty}

別のテーブルを拡張するテーブルは「子クラス」と呼ばれ、これが拡張するテーブルが「親クラス」になります。テーブルは同時に親クラスと子クラスになり、他のテーブルを拡張したり、他のテーブルに拡張を提供したりすることができます。別のテーブルの拡張ではない親クラスは、「基底クラス」と呼ばれます。  
アドミニストレーターは、これらのツールを使用してクラス間の関係を確認できます。

* スキーママップ
* システム辞書
* テーブルモジュール
{#table-extension-and-classes__ul_mll_w3d_ty}  
テーブルの拡張：

* 新しいテーブルを拡張テーブルにリンクします。
* 新しいテーブルにシステムフィールドを作成します。
* 親クラスと子クラスを格納するデータベーステーブルを 1 つまたは複数作成します。システムが作成するテーブルの数は、テーブルの作成時に選択した拡張モデルによって異なります。
{#table-extension-and-classes__ul_sp1_zzc_ty}

## 拡張モデル {#table-extension-and-classes__section_mlg_jzj_fbb}

Now Platform には次のような拡張モデルがあります。

* クラス別テーブル
* 階層別テーブル
* パーティション別テーブル
{#table-extension-and-classes__ul_k11_431_l2b}  
拡張モデルによってこれらの属性が決まります。

* 作成されたデータベーステーブルの数
* 親クラスからのフィールドの派生
* 子クラスからのレコードの複製
{#table-extension-and-classes__ul_myg_531_l2b}

## クラス別テーブル {#table-extension-and-classes__section_wpy_km1_l2b}

作成されたテーブル
:   親クラスと子クラスごとに個別のデータベーステーブルを作成します。

親クラスから派生したフィールド
:   子クラスは、親クラスからフィールドを派生させます。

親クラス用に作成された辞書レコード
:   親クラスには、コレクションと、そこから派生可能な各フィールドの辞書レコードがあります。たとえば、契約 \[ast_contract\] テーブルには、テーブルとそのフィールドを定義する 59 件の辞書レコードがあります。

子クラス用に作成された辞書レコード
:   各子クラスには、そのクラスに固有のフィールドの辞書エントリのみがあります。

複製されたレコード
:   親クラスは、子クラスに格納されている各レコードを複製します。各子クラスには、クラスに固有のレコードのみが格納されます。複製されたレコードには、各テーブルに同じ Sys ID 値があります。子レコードに加えた変更は、親テーブル内の一致するレコードに複製されます。たとえば、契約 \[ast_contract\] テーブルは、リース \[ast_lease\] テーブルと保証 \[ast_warranty\] テーブルのレコードを複製します。

## 階層別テーブル {#table-extension-and-classes__section_s41_pq1_l2b}

作成されたテーブル
:   親クラスに対して 1 件のデータベーステーブルを作成します。親クラスと子クラスのレコードは、すべてここに格納されます。子クラスには個別のデータベーステーブルはありません。

親クラスから派生したフィールド
:   子クラスは、親クラスからフィールドを派生させます。たとえば、インシデントテーブルはタスクテーブルからフィールドを派生させます。

親クラス用に作成された辞書レコード

:   親クラスには、コレクションと、そこから派生可能な各フィールドの辞書レコードがあります。たとえば、タスクテーブルは、テーブルとそのフィールドを定義する 66 件の辞書レコードを含む親クラスです。

    親クラスの辞書エントリには、各レコードが属する子クラスを示す値を含む sys_class_name 列が含まれています。たとえば、インシデントレコードの sys_class_name 値は incident で、変更レコードの sys_class_name 値は change です。

子クラス用に作成された辞書レコード
:   各子クラスには、そのクラスに固有のフィールドの辞書エントリのみがあります。たとえば、インシデントテーブルには、タスクテーブルでまだ定義されていない 22 件の辞書レコードしかありません。

複製されたレコード
:   親クラスは「階層」に属するすべてのレコードを格納するため、レコードの複製は必要ありません。たとえば、タスクテーブルには、変更テーブル、インシデントテーブル、問題テーブルなど、その子クラスのすべてのレコードが含まれています。

## パーティション別テーブル {#table-extension-and-classes__section_wwx_vr1_l2b}

作成されたテーブル
:   親クラスに対して 1 件のデータベーステーブルを作成します。親クラスと子クラスのレコードは、すべてここに格納されます。子クラスには個別のデータベーステーブルはありません。データベーステーブルがストレージの上限に達すると、ストレージテーブル (「パーティション」) が動的に追加され、追加のレコードが格納されます。

親クラスから派生したフィールド
:   子クラスは、親クラスからフィールドを派生させません。代わりに、各子クラスにはフィールドの独自のリストがあります。たとえば、ベース構成アイテム \[cmdb\]、構成アイテム \[cmdb_ci\]、およびハードウェア \[cmdb_ci_hardware\] テーブルはすべて、独自のフィールド定義があります。

親クラス用に作成された辞書レコード

:   親クラスには、コレクションと、そこに関連する各フィールドの辞書レコードがあります。たとえば、ベース構成アイテム \[cmdb\] テーブルは、48 件の辞書レコードを持つ親クラスです。

    親クラスの辞書エントリに加えられた変更は、子クラスの辞書エントリに複製されます。たとえば、親クラスのベース構成アイテム \[cmdb\] テーブルの \[名前\] 列を変更すると、構成アイテム \[cmdb_ci\] テーブルやハードウェア \[cmdb_ci_hardware\] テーブルなどの子クラスの辞書エントリに複製されます。

    親クラスの辞書エントリには、各レコードが属する子クラスを示す値を含む sys_class_name 列と sys_class_path 列が含まれています。たとえば、ハードウェアレコードの sys_class_name 値は cmdb_ci_hardware で、コンピューターレコードの sys_class_name 値は cmdb_ci_computer です。

    データベーステーブルがストレージの上限に達すると、システムは親クラスの辞書エントリを更新し、sys_storage_alias と storage_table_name の列を含めます。これらのストレージ列の辞書エントリにより、アドミニストレーターは親クラスとそのストレージテーブルを単一の論理ユニットとして管理できます。

子クラス用に作成された辞書レコード
:   各子クラスには、コレクションと、それに関連する各フィールドの辞書レコードがあります。たとえば、ハードウェアテーブルには、親クラスの列を複製するレコードを含む 73 件の辞書レコードがあります。

複製されたレコード
:   親クラスは「階層」に属するすべてのレコードを格納するため、レコードの複製は必要ありません。たとえば、ベース構成アイテム \[cmdb\] テーブルには、アプリケーション \[cmdb_ci_appl\]、コンピューター \[cmdb_ci_computer\]、ハードウェア \[cmdb_ci_hardware\] テーブルなど、その子クラスのすべてのレコードが含まれています。

