インスペクターパレットを使用してテーブルのプロパティを設定できます。また特定のプロパティについてはテーブルのコンテキストメニューからも設定できます。
トリガーはテーブルに関連する特定のイベントが発生した際に自動で実行されるメソッドです。以下のイベントがあります:
- 新規レコード保存時
- 既存レコード保存時
- レコード削除時
トリガーイベントはインスペクターパレットまたはテーブルに割り当てられたコンテキストメニューを使用して設定できます:
![](../../picture/1282020/pict1282020.en.png)
有効にしたいトリガーにチェックします。
テーブルのトリガーには、ストラクチャーエディターのテーブルインスペクターパレットで編集...ボタンをクリックするか、テーブルのコンテキストメニューからメソッド編集...サブメニューを選択します。トリガーに関する情報は“4Dメソッドのタイプ”を参照してください。
注:
メソッドエディターに記述したトリガーは、選択したイベントが検出されたときにのみ実行されます。
アピアランスや一般的な振る舞いを指定するために、テーブルごとに異なる属性を設定できます。
テーブルイメージごとにカラーを割り当てることができます。カラーを使用すると、大きなデータベースストラクチャーでグループを視認しやすくできます。例えば顧客や顧客にリレートするすべてのテーブルに同じカラーを設定し、在庫や在庫にリレートするすべてのテーブルに別のカラーを割り当てることができます。
![](../../picture/105793/pict105793.en.png)
注: 個々のフィールド (参照) やリレーション (定義参照) にカラーを割り当てることもできます。
テーブルにカラーを設定するには、テーブルを選択し、以下の方法でカラーを選択します:
- ストラクチャーエディターツールバーのカラーボタン
![](../../picture/105795/pict105795.en.png)
- テーブルのコンテキストメニューのカラーコマンド
- インスペクターパレットのカラーオプション
自動オプションを使用すると、テーブルのデフォルトカラーが使用されます。
このオプションを使用して、アプリケーションモードおよびプラグインからテーブルを見えなくできます。このオプションはユーティリティテーブルや、一時的に使用しないテーブルに対して使用できます。
テーブルを非表示にすることで、アプリケーションモードのすべてのエディター上やいくつかのダイアログボックスでそのテーブルとフィールドが非表示になり、ユーザーがテーブルに対して行うことのできる処理を制限できます。
アプリケーションモードの関連するエディターやダイアログボックスは以下の通りです:
これらのエディターそれぞれで、ユーザーはテーブルやそのフィールドを見たり選択したりすることはできません。例えばレポートやラベルに非表示テーブルのフィールドを含めることはできません。
注: これらのエディターを使用する際、ユーザーは設定をディスクファイルに保存することができます (例えば作成したクエリや並び替え設定)。その設定ファイルが使用される場合、設定が作成された後に非表示にされたテーブルやフィールドは、あとの操作でも使用することが可能です。さらに、ユーザーはフォーミュラエディターダイアログボックスに非表示テーブルやフィールド名をタイプ入力することが可能です。
非表示テーブルとフィールドはストラクチャーエディターウィンドウ内でイタリックで表示されます。
このオプションを使用すると、DELETE SELECTIONコマンドを使用して選択したレコードを削除する際の動作を最適化できます。
4Dはレコードのセレクションを削除する際、レコードマーカーも削除します。レコードマーカーはそのレコードに関連する情報を含む、レコードに添付されたヘッダーです。マーカーとレコード両方を削除するのは、レコードだけを削除するよりも時間がかかります。特定のケースのためにレコードマーカーを自動では削除しないように設定できます。
このオプションを使用して希望する削除のタイプを設定できます。DELETE SELECTIONを使用して実行される大量のセレクションの削除を加速するために、 レコードを完全に削除オプションの選択を解除できます。そうするとレコードマーカーは削除されなくなります。このオプションをプログラムで設定することはできません。
このオプションがチェックされていると、4Dはテーブルのレコードを複製するために必要な情報を生成します (特にテーブルの主キーに基づきます)。レコードの複製機能は2つあるいはそれ以上の4Dデータベース間でのデータの同期を可能とし、セキュリティを高めます。
オプションを有効にしたら、特定の4DのSQLランゲージコマンドやHTTPプロトコルを使用して複製メカニズムを実装しなければなりません。このオプションと複製メカニズムに関する詳細はSQLを使用した複製を参照してください。HTTPを使用した複製に関する情報はURL 4DSYNC/を参照してください。
デフォルトで、このオプションはチェックされていません。このオプションを利用するには、複製するテーブルに対して主キーを設定しなければなりません。そうでなければこのオプションをチェックすることはできません。4Dはストラクチャーエディターで直接テーブルの主キーを設定できます。 (後述)。
このオプションはそのテーブルが、REST 経由で4Dデータベースへと送られる 4D Mobile リクエストのコンテキストにおいて公開されるかどうかを管理します。デフォルトでは全てのテーブルが 4D Mobile に公開されています。
セキュリティ上の理由から、 4D Mobile リクエストに対してデータベースの一部のテーブルのみを公開したい状況もあるでしょう。例えば、[Users]というテーブルを作成しその中にユーザー名とパスワードが保存されていたとしたら、そのテーブルは公開しない方が賢明でしょう。
テーブル(あるいはそれに含まれるフィールド全て)を公開したくない場合は、そのテーブルの4D Mobile サービスで公開のオプションのチェックを外しましょう。
注: このオプションはテーブルのフィールドごとに設定することもできます。フィールドプロパティ を参照して下さい。
このオプションは "4D Mobile" 機能のコンテキストの中でも使用されます。詳細な情報に関しては、 4D Mobile のマニュアルを参照して下さい。
このオプションは、作成された全ての新しいテーブルと変換されたデータベースにおいては、デフォルトでチェックがされています。
テーブルのデータに対して行われたオペレーションを、全てデータベースのログファイル(作成時)に含めたい場合にはこのオプションにチェックを入れて下さい。このオプションは一般的に、ほとんどのテーブルにおいてチェックされるべきものです。しかしながら、最適化の観点から、例えばデータをインポートするために一時的に使用するテーブルなどではチェックを外すこともできます。
注: このオプションはテーブルがプライマリーキーを持っていない場合にはグレーになって選択することができません。
このオプションは、データベースがログファイルを使用する場合には、そのテーブルのデータがログに記録されなければならないという指示にすぎず、データベースレベルでのデータログ処理そのものを有効化するスイッチではないということに留意して下さい(詳細はログファイルの管理を参照して下さい)。
必要要件を満たしていない場合は、ログファイルに含めるのオプションの横に警告アイコンが表示されます。
![](../../picture/1282132/pict1282132.en.png)
このアイコンが表示されている限り、データログは有効化されていません。この警告にマウスオーバーすることで警告の原因を調べることができます:
![](../../picture/1282145/pict1282145.en.png)
以下のメッセージのいずれかが表示されます:
メッセージ | 原因 | 修正箇所 |
プライマリーキーが作成されるまで保留中です。 | テーブルにプライマリーキーがない場合はデータログを取ることはできません | SQL、またはテーブルのコンテキストメニューを使用してプライマリーキーを作成して下さい。 |
プライマリーキーの値が修正されるまで保留中です。 | プライマリーキーの値は検証され、異常が含まれています | フィールドのレコード内にて重複している値またはヌル値を全て除去して下さい。またはほかのプライマリーキーを使用して下さい |
「ログファイルに含める」が有効化されるまで保留中。 | データログを有効化するオプションがチェックされていません | データベース設定のバックアップ→設定ページ内の「ログファイルを使用」のオプションにチェックを入れて下さい |
インスペクターパレットのコメントエリアにはテーブルに関する追加の情報を格納できます。このコメントはすべての開発者が利用できます。
フィールドおよびリレーションごとにもコメントエリアがあります。
インスペクターパレットのSQLエリアにはスキーマメニューと情報エリアがあります。
- “スキーマ”メニューにはデータベースに定義されたすべてのSQLスキーマが一覧されます。このメニューを使用して、テーブルが属するスキーマを指定できます (このプロパティはSQLコマンドを使用して変更することもできます)。すべてのデータベースには最低1つの、DEFAULT_SCHEMAという名前のスキーマがあります。デフォルトですべてのテーブルはこのスキーマに属します。SQLスキーマに関する詳細は4D SQLリファレンスのスキーマを参照してください。
- 情報エリアは、テーブル名がSQLの命名規則に沿っているかどうかを表示します (例えば4Dと異なり、SQLではフィールド名にスペースを含めることはできません)。
プライマリーキーは、テーブル内のレコードを個別に識別するために使用されるフィールドを指定します。4Dテーブルのレコードの複製(SQLを使用した複製を参照して下さい)とデータログ機能を使用する(ログファイルの管理を参照して下さい)ためにはプライマリーキーを設定しなければなりません。
ストラクチャーエディターのコンテキストメニューを使用して、直接プライマリーキーを作成/編集/削除することができます。
注: プライマリーキーは、SQLランゲージにてPRIMARY KEY節のあとカラムのリストを記述することでも作成することができます(詳細な情報は 4D SQL Reference Guide 内の主キーを参照して下さい)。
ストラクチャーエディターからプライマリーキーを作成するためには、以下の手順に従って下さい:
- テーブルのプライマリーキーを構成するフィールド(複数も可)を選択します。
- 右クリックでコンテキストメニューを表示し、主キーを作成を選択します:
![](../../picture/106919/pict106919.en.png)
一つのテーブルにつき二つ以上のプライマリーキーを作成することはできません。プライマリーキーが既にテーブルにおいて指定されている場合、既存のプライマリーキーは無効化されるという旨の警告ダイアログボックスが表示されます。
プライマリーキーは直ちに作成されます。プライマリーキーに含まれるフィールドはエディター上では下線が引かれ、インスペクターのSQLの詳細にはPRIMARY KEYのキーワードが入ります。
プライマリーキーに含まれるフィールドでは重複する値を含むことはできません。重複する値が既にテーブルのレコード内に存在していた場合、これのためにプライマリーキーを作成できないことを警告するダイアログボックスが表示されます。
注: プライマリーキーに所属するカラムは、ヌル値を受け付けません。
4D v14 以降、新しく作成されるテーブルには全てデフォルトでプライマリーキーが含まれています:
![](../../picture/1282266/pict1282266.en.png)
このフィールドは、デフォルトで名前が "ID" の倍長整数型のフィールドであり、以下の属性を持ちます:
- 重複不可
- ヌル値の入力を拒否
- 自動インクリメント
- 自動インデックス
注: 4Dアプリケーションの設定のストラクチャーページ にて、プライマリーキーのデフォルトの名前と型を変更することができます。
このフィールドはそのまま使用することもできますし、必要に応じて名前やプロパティを変更する事もできます ( 例えば UUID フィールドを使用する等 )。また、他のフィールドをプライマリーキーとして使用する場合はプライマリーキーを削除することはできます。
ただし、全ての 4D テーブルに最低一つずつプライマリーキーを用意しておくことが強く推奨されます。
注: デフォルトのプライマリーキーは、SQL CREATE TABLE コマンドを使用して作成されたテーブルやデータベースにインポートされたテーブルには追加されません。
テーブルからプライマリーキーを削除するためには、以下の手順に従って下さい:
- プライマリーキーを含むテーブルを右クリックしてコンテキストメニューを表示し、主キーを削除を選択します:
![](../../picture/107129/pict107129.en.png)
確認のダイアログボックスが表示されます。プライマリーキーを削除するためにはOKをクリックします。