データベース構造の詳細分析

Deeplからの自動翻訳

テーブル、フィールド、インデックス、リレーション 、あるいはデータベース構造全体について、 非常に詳細な 情報を取得できることをご存知でしょうか。このような情報は、分析やイントロスペクションのために非常に有用です。もちろん、4D Packの非推奨コマンドを使用することもできます。 _AP Get field infos_AP Get table info.また、SQL system tables を使用する方法もあります。

いずれも、すべての情報を取得することはできません。では、4D コマンドを使用できるのに、なぜプラグインや SQL を使用するのでしょうか?4D コマンドは EXPORT STRUCTUREコマンドは、完全なデータベース構造定義を XMLツリーで 返します。このコマンドは、4D v14 R4 から存在します。

例えば、このコマンドを使うと、次のことがわかります。

  • テーブルがジャーナルされているかどうか。
  • フィールドがプライマリキーであるかどうか。
  • トリガーがフィールドに関連するかどうか。
  • 4Dモバイルサービスでテーブルやフィールドが公開されているかどうか。

XMLツリーを解析し、その結果をObject変数に保存する3つのメソッドを提供します。そして、このObjectを4Dオブジェクトコマンドで操作して、テーブル、フィールド、インデックス、リレーションに対して、解析、表示、その他必要なアクションを行うことができます。

各メソッドのソースコードと、完全なサンプルデータベース(4D v16バージョン)が利用可能です。

これらのコマンドをあなたのデータベースにインポートして、すぐに使うことができます。

テーブルとフィールドに関する情報

4D methodこのコマンドは getTablesAndFieldsメソッドは、XMLツリーを解析し、テーブルとフィールドの情報を取得します。結果は、Object 変数に格納されます。これは、JSON 形式のオブジェクトを抽出したもので、その中には “Table_1” テーブルの情報と “ID“:

{
"id": "1",
"leave_tag_on_delete": "true",
"name": "Table_1",
"uuid": "0F8DD65FCF8E4CBB882B2FF15C9C8A12",
"trigger_insert": "true",
"comment": "Comments on my Table_1",
"displayable_fields_count": "14",
"color": {"alpha":"0","blue":"255","green":"255","red": "255"},
"coordinates": {"height":"355","left":"62","top":"70", "width":"152"},
"Field": [ {
	"autosequence": "true",
	"id": "1",
	"name": "ID",
	"not_null": "true",
	"type": "4",
	"unique": "true",
	"uuid": "1DC7531F29684D699D9FE9686AB71009",
	"index_ref": [ { "uuid": "7260EA8E18A1477A90F068F70754C384" } ],
	"pk": "true"
	} , {...} ]
}

インデックスに関する情報

4D methodこの getIndexメソッドは、XML ツリーを解析し、インデックス情報を取得します。結果は、Object 変数に格納されます。これは、JSON 形式のオブジェクトを抽出したもので、”Index Name” のインデックスを取得します。[Table_1]Champ_Alp” フィールドの情報を見ることができます。

{
"kind": "regular",
"name": "Index Name",
"type": "7",
"uuid": "42E921F874EF44B4A2A08AD82CA53D91",
"field": [ {
	"name": "Champ_Alp",
	"uuid": "BC7FE443CAC344F993655D4EDE731D87",
	"table_name": "Table_1",
	"table_uuid": "0F8DD65FCF8E4CBB882B2FF15C9C8A12"
	} ]
}

リレーションに関する情報

4D methodは、XML ツリーを解析し、インデックス情報を取得します。 getRelationsメソッドはXMLツリーを解析し、リレーション情報を取得する。その結果もObject変数に格納される。これは、” “と” “の間のリレーション情報を抽出したものである。[Table_1]ID” と “[Table_2]ID” のリレーション情報を JSON 形式で抽出したものである。

{
"auto_load_1toN": "false",
"auto_load_Nto1": "true",
"name_1toN": "Link_1_return",
"name_Nto1": "Link_1",
"uuid": "370180DABD8545D690CDC79E15D31215",
"choice_field": "0",
"entry_autofill": "false",
"entry_create": "false",
"entry_wildchar": "false",
"color": {"alpha":"0","blue":"255","green":"255","red":"255"},
"related_field": [ {
	"kind": "source",
	"name": "ID",
	"uuid": "1DC7531F29684D699D9FE9686AB71009",
	"table_name": "Table_1",
	"table_uuid": "0F8DD65FCF8E4CBB882B2FF15C9C8A12"
	} , {
	"kind": "destination",
	"name": "ID",
	"uuid": "B71D191358954A5783210E2447CD1A27",
	"table_name": "Table_2",
	"table_uuid": "6E23C70A973743B28809D9C3F3CC9060"
	} ]
}

4D Packの非推奨コマンドの置き換え

4D methodまた EXPORT STRUCTUREコマンドで、4D Packの非推奨コマンドを置き換えることができます。のように対応するために実装された2つの4Dメソッドを提供します。 _AP Get field infos_AP Get table infoコマンドのように対応するために実装された2つの4Dメソッドを提供します。

  • Get table info: テーブルの情報を取得します。
  • Get field info: フィールドの情報を取得します
Vanessa Talbot
- プロダクトオーナー - Vanessa Talbotは、2014年6月に4Dプログラムチームに参加しました。プロダクトオーナーとして、彼女はユーザーストーリー(ユーザーが期待する新機能とその使用法)を書き、それを具体的な機能仕様に変換する役割を担っています。また彼女の役割は、実装された機能が顧客のニーズを満たしているかどうかを確認することでもあります。入社以来、4Dにおける主要機能の定義に関わってきました。プリエンプティブ/マルチスレッドの新機能の大部分と、非常に複雑なテーマである組み込みアプリケーションの新アーキテクチャに取り組んできました。VanessaはTelecom Saint-Etienneで学位を取得後、Criminal Research Institute でオーディオビジュアル部門の開発者としてキャリアをスタートさせました。また、メディアや医療の分野でも、技術サポートやプロダクションの分野で働いてきました。