4D v16.3

テーブルプロパティ

ホーム

 
4D v16.3
テーブルプロパティ

テーブルプロパティ  


 

 

インスペクターパレットを使用してテーブルのプロパティを設定できます。また特定のプロパティについてはテーブルのコンテキストメニューからも設定できます。

トリガーはテーブルに関連する特定のイベントが発生した際に自動で実行されるメソッドです。以下のイベントがあります:

  • 新規レコード保存時
  • 既存レコード保存時
  • レコード削除時

トリガーイベントはインスペクターパレットまたはテーブルに割り当てられたコンテキストメニューを使用して設定できます:

有効にしたいトリガーにチェックします。

テーブルのトリガーには、ストラクチャーエディターのテーブルインスペクターパレットで編集...ボタンをクリックするか、テーブルのコンテキストメニューからメソッド編集...サブメニューを選択します。トリガーに関する情報は“4Dメソッドのタイプ”を参照してください。

注:

メソッドエディターに記述したトリガーは、選択したイベントが検出されたときにのみ実行されます。

属性  

アピアランスや一般的な振る舞いを指定するために、テーブルごとに異なる属性を設定できます。

このオプションを使用して、アプリケーションモードおよびプラグインからテーブルを見えなくできます。このオプションはユーティリティテーブルや、一時的に使用しないテーブルに対して使用できます。

テーブルを非表示にすることで、アプリケーションモードのすべてのエディター上やいくつかのダイアログボックスでそのテーブルとフィールドが非表示になり、ユーザーがテーブルに対して行うことのできる処理を制限できます。

アプリケーションモードの関連するエディターやダイアログボックスは以下の通りです:

これらのエディターそれぞれで、ユーザーはテーブルやそのフィールドを見たり選択したりすることはできません。例えばレポートやラベルに非表示テーブルのフィールドを含めることはできません。

注: これらのエディターを使用する際、ユーザーは設定をディスクファイルに保存することができます (例えば作成したクエリや並び替え設定)。その設定ファイルが使用される場合、設定が作成された後に非表示にされたテーブルやフィールドは、あとの操作でも使用することが可能です。さらに、ユーザーはフォーミュラエディターダイアログボックスに非表示テーブルやフィールド名をタイプ入力することが可能です。

非表示テーブルとフィールドはストラクチャーエディターウィンドウ内でイタリックで表示されます。

テーブルイメージごとにカラーを割り当てることができます。カラーを使用すると、大きなデータベースストラクチャーでグループを視認しやすくできます。例えば顧客や顧客にリレートするすべてのテーブルに同じカラーを設定し、在庫や在庫にリレートするすべてのテーブルに別のカラーを割り当てることができます。

注: 個々のフィールド (参照) やリレーション (定義参照) にカラーを割り当てることもできます。

テーブルにカラーを設定するには、テーブルを選択し、以下の方法でカラーを選択します:

  • ストラクチャーエディターツールバーのカラーボタン
  • テーブルのコンテキストメニューのカラーコマンド
  • インスペクターパレットカラーオプション

自動オプションを使用すると、テーブルのデフォルトカラーが使用されます。

このオプションを使用すると、DELETE SELECTIONコマンドを使用して選択したレコードを削除する際の動作を最適化できます。

4Dはレコードのセレクションを削除する際、レコードマーカーも削除します。レコードマーカーはそのレコードに関連する情報を含む、レコードに添付されたヘッダーです。マーカーとレコード両方を削除するのは、レコードだけを削除するよりも時間がかかります。特定のケースのためにレコードマーカーを自動では削除しないように設定できます。

このオプションを使用して希望する削除のタイプを設定できます。DELETE SELECTIONを使用して実行される大量のセレクションの削除を加速するために、 レコードを完全に削除オプションの選択を解除できます。そうするとレコードマーカーは削除されなくなります。このオプションをプログラムで設定することはできません。

このオプションがチェックされていると、4Dはテーブルのレコードを複製するために必要な情報を生成します (特にテーブルの主キーに基づきます)。レコードの複製機能は2つあるいはそれ以上の4Dデータベース間でのデータの同期を可能とし、セキュリティを高めます。

オプションを有効にしたら、特定の4DのSQLランゲージコマンドやHTTPプロトコルを使用して複製メカニズムを実装しなければなりません。このオプションと複製メカニズムに関する詳細はSQLを使用した複製を参照してください。HTTPを使用した複製に関する情報はURL 4DSYNC/を参照してください。

デフォルトで、このオプションはチェックされていません。このオプションを利用するには、複製するテーブルに対して主キーを設定しなければなりません。そうでなければこのオプションをチェックすることはできません。4Dはストラクチャーエディターで直接テーブルの主キーを設定できます。 (後述)。

このオプションはそのテーブルが4Dデータベースへと送られる4D Mobileリクエストのコンテキストにおいて公開されるかどうかを管理します。デフォルトでは全てのテーブルがREST経由で4D Mobileに公開されています。

セ キュリティ上の理由から、4D Mobile要求に対してデータベースの一部のテーブルのみを公開したい状況もあるでしょう。例えば、[Users]というテーブルを作成しその中にユー ザー名とパスワードが保存されていたとしたら、そのテーブルは公開しない方が賢明でしょう。

テーブル(あるいはそれに含まれるフィールド全て)を公開したくない場合は、そのテーブルの4D Mobileサービスで公開のオプションのチェックを外しましょう。

注: このオプションは、テーブル内の個別のフィールドレベルで設定する事ができます。フィールドプロパティ を参照して下さい。

このオプションは "4D Mobile" 機能のコンテキストの中でも使用されます。詳細な情報に関しては、 4D Mobile のマニュアルを参照して下さい。

このオプションは、作成された全ての新しいテーブルと変換されたデータベースにおいては、デフォルトでチェックがされています。

テーブルのデータに対して行われたオペレーションを、全てデータベースのログファイル(作成時)に含めたい場合にはこのオプションにチェックを入れて下さい。このオプションは一般的に、ほとんどのテーブルにおいてチェックされるべきものです。しかしながら、最適化の観点から、例えばデータをインポートするために一時的に使用するテーブルなどではチェックを外すこともできます。

注: このオプションはテーブルがプライマリーキーを持っていない場合にはグレーになって選択することができません。

このオプションは、データベースがログファイルを使用する場合には、そのテーブルのデータがログに記録されなければならないという指示にすぎず、データベースレベルでのデータログ処理そのものを有効化するスイッチではないということに留意して下さい(詳細はログファイルの管理を参照して下さい)。

必要要件を満たしていない場合は、ログファイルに含めるのオプションの横に警告アイコンが表示されます。

このアイコンが表示されている限り、データログは有効化されていません。この警告にマウスオーバーすることで警告の原因を調べることができます:

以下のメッセージのいずれかが表示されます:

メッセージ原因修正箇所
プライマリーキーが作成されるまで保留中です。テーブルにプライマリーキーがない場合はデータログを取ることはできませんSQL、またはテーブルのコンテキストメニューを使用してプライマリーキーを作成して下さい。
プライマリーキーの値が修正されるまで保留中です。プライマリーキーの値は検証され、異常が含まれていますフィールドのレコード内にて重複している値またはヌル値を全て除去して下さい。またはほかのプライマリーキーを使用して下さい
「ログファイルに含める」が有効化されるまで保留中。データログを有効化するオプションがチェックされていませんデータベース設定のバックアップ→設定ページ内の「ログファイルを使用」のオプションにチェックを入れて下さい

インスペクターパレットのコメントエリアにはテーブルに関する追加の情報を格納できます。このコメントはすべての開発者が利用できます。
フィールドおよびリレーションごとにもコメントエリアがあります。

SQL  

インスペクターパレットのSQLエリアにはスキーマメニューと情報エリアがあります。

  • “スキーマ”メニューにはデータベースに定義されたすべてのSQLスキーマが一覧されます。このメニューを使用して、テーブルが属するスキーマを指定できます (このプロパティはSQLコマンドを使用して変更することもできます)。すべてのデータベースには最低1つの、DEFAULT_SCHEMAという名前のスキーマがあります。デフォルトですべてのテーブルはこのスキーマに属します。SQLスキーマに関する詳細は4D SQLリファレンスのスキーマを参照してください。
  • 情報エリアは、テーブル名がSQLの命名規則に沿っているかどうかを表示します (例えば4Dと異なり、SQLではフィールド名にスペースを含めることはできません)。

プライマリーキーは、テーブル内のレコードを個別に識別するために使用されるフィールドを指定します。4Dテーブルのレコードの複製(SQLを使用した複製を参照して下さい)とデータログ機能を使用する(ログファイルの管理を参照して下さい)ためにはプライマリーキーを設定しなければなりません。

ストラクチャーエディターのコンテキストメニューを使用して、直接プライマリーキーを作成/編集/削除することができます。

注: プライマリーキーは、SQLランゲージにてPRIMARY KEY節のあとカラムのリストを記述することでも作成することができます(詳細な情報は 4D SQL Reference Guide 内の主キーを参照して下さい)。

プライマリーキーフィールドは、データの整合性を保証するために常に細心の注意で管理すべきものです。具体的には、プライマリーキーフィールドは以下のルールを遵守する必要があります:

  • 空であってはいけません。
  • 固有(重複不可)でなければなりません。
  • 一度作成されたら、原則として変更してはなりません。以下のような場合には絶対変更してなりません:
    • 4D の複製あるいは同期機能が有効化されている
    • 4D Mobile (あるいはそれに似た)機能が有効化されている
    • データベースのログ機能(ログファイルを使用したバックアップあるいは論理ミラー)が有効化されている
    • プリマリーキーが外部システムとの通信あるいは同期目的で使用されている

プライマリーキーフィールドを変更することは、たとえ4Dが特殊な場合に対して許可しているとしても、変更しないことが強く推奨されます。どうしてもプライマリーキーフィールドを変更しなくてはいけない場合(例:マイナンバーをプライマリーキーとして指定してしまい、誤った番号を入力してしまった、等)でも、変更する代わりにカレントのプライマリーキーを無効化(削除)して自動割り当てをつけた新しいフィールドを追加してプライマリーキーフィールドとして使用する方が望ましいです。

プライマリーキーフィールドは、倍長整数型がUUIDフォーマット(文字型)が選べます。多くの場合、自動UUIDオプションを有効化したUUIDフォーマットの方が推奨されます。倍長整数型の方が使用するディスク容量が小さいのですが、UUIDには他の多くの利点があります。例えば、独立したデータベースの統合が容易であったり、データの読み込み/書き出し、精巧なミラー/複製戦略の実装、あるいは外部システムとの同期、などにおいて有利です。

ストラクチャーエディターからプライマリーキーを作成するためには、以下の手順に従って下さい:

  1. テーブルのプライマリーキーを構成するフィールド(複数も可)を選択します。
  2. 右クリックでコンテキストメニューを表示し、主キーを作成を選択します(このコマンドは主キーとして使用可能な型のフィールドに対してのみ表示されます):

    一つのテーブルにつき二つ以上のプライマリーキーを作成することはできません。プライマリーキーが既にテーブルにおいて指定されている場合、既存のプライマリーキーは無効化されるという旨の警告ダイアログボックスが表示されます。

プライマリーキーは直ちに作成されます。プライマリーキーに含まれるフィールドはエディター上では下線が引かれ、インスペクターのSQLの詳細にはPRIMARY KEYのキーワードが入ります。

既にレコードが存在するテーブルに主キーを作成した場合(既存フィールドを使用、あるいは新規に追加した場合)、4Dは存在している全ての値の適合性をチェックするか、あるいは自動的にアップデート操作を実行します:

  • 主キーに属しているフィールド内では重複している値を持つ事はできません。テーブルのレコード内に重複している値が存在していた場合、この値の為に主キーを作成する事ができない旨を示す警告ダイアログボックスが表示されます。
  • 重複した値が空の値、またはヌル値(追加されたフィールド)だった場合、それに対応する自動生成オプションをチェックする事ができます( の文字フィールドでの 、または倍長整数フィールドでの )。この場合、4Dはテーブルの全てのレコードを検査し計算された値をそれぞれの主キーに自動的に割り当てます。ただし処理はシーケンシャルであり、レコードの数が大量であった場合、この処理に長い時間を要することがあるという点に注意して下さい。

: プライマリーキーに所属するカラムは、ヌル値を受け付けません。

テーブルからプライマリーキーを削除するためには、以下の手順に従って下さい:

  1. プライマリーキーを含むテーブルを右クリックしてコンテキストメニューを表示し、主キーを削除を選択します:

確認のダイアログボックスが表示されます。プライマリーキーを削除するためにはOKをクリックします。

4D v14 以降、新しく作成されるテーブルには全てデフォルトでプライマリーキーが含まれています:

このフィールドは、デフォルトで名前が "ID" の倍長整数型のフィールドであり、以下の属性を持ちます:

  • 重複不可
  • ヌル値の入力を拒否
  • 自動インクリメント
  • 自動インデックス

注: 4Dアプリケーションの設定のストラクチャーページ にて、プライマリーキーのデフォルトの名前と型を変更することができます。

このフィールドはそのまま使用することもできますし、必要に応じて名前やプロパティを変更する事もできます ( 例えば UUID フィールドを使用する等 )。また、他のフィールドをプライマリーキーとして使用する場合はプライマリーキーを削除することはできます。

ただし、全ての 4D テーブルに最低一つずつプライマリーキーを用意しておくことが強く推奨されます。

注: デフォルトのプライマリーキーは、SQL CREATE TABLE コマンドを使用して作成されたテーブルやデータベースにインポートされたテーブルには追加されません。



参照 

フィールドプロパティ

 
プロパティ 

プロダクト: 4D
テーマ: データベースストラクチャーの作成

 
履歴 

 
タグ 

primary key, replication

 
ARTICLE USAGE

デザインリファレンス ( 4D v16)
デザインリファレンス ( 4D v16.1)
デザインリファレンス ( 4D v16.3)