0

クラスに例えると、静的変数のようなものです。

たとえば、人々を維持するためのテーブルがあるとしましょう。次に、各行に、年齢、性別、名前などの一連の列があります...しかし、値をテーブル自体に関連付けたいと思いますminimum allowed age = 18。次に、新しい人を追加するたびに、年齢が より大きいかどうかを確認しTable.minimum_allowed_ageます。このようにして、どこにもハードコーディングすることなく、その値を簡単に変更できました。

私が今できる唯一の方法は、オプションが1つしかない(非常に醜い)ENUM列を作成する18ことです。その後、すべての行にそれがあります。これは、特にその値を頻繁に変更したい場合 (私のアプリケーションでの私の場合) は特に、それを行う方法ではありません。

4

3 に答える 3

2

あまり。AUTO_INCREMENT一部のデータベース サーバーでは、テーブルに数ビットのメタデータ (たとえば、 MySQLの値、またはさまざまな SQL データベースのフィールド) を添付できますCOMMENTが、汎用のデータ ストレージには適していません。

あなたの場合、あなたが説明している値 (最小許容年齢) はテーブルのプロパティではありません - それはアプリケーション ロジックのプロパティです。長期的に一定である場合は、コードに定数として記述します。より頻繁に変更される場合は、アプリケーション全体の構成キーと値のペアを格納する別のテーブルを作成します。

于 2012-08-29T20:00:54.097 に答える
1

静的変数は技術的にはグローバルです。別のテーブルを使用してグローバル プロパティを格納するのはどうですか?

主キーの文字列CAST、値をフェッチするネストされたクエリの整数に対する別の文字列が機能します。

十分な場合は整数値を使用するか、NULL型の安全性が必要な場合はいくつかの異なる型の多分列を使用することもできます (完全に一般的な文字列->文字列ビューの場合、結果を文字列にすることができます) COALESCECAST

テーブルに関連付けられているグローバルの場合、適切な規則を確立できます。たとえば、キーの前にテーブル名と区切り文字を付けます。

于 2012-08-30T08:44:50.943 に答える
0

挿入トリガーを作成してみることができます。トリガー コード内で、最低年齢が 18 歳であるかどうかを確認し、そうでない場合は 18 歳に設定できます。

于 2012-08-29T20:23:03.637 に答える