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