システムアナリスト出身...
主な考慮事項は、国際化を行うかどうかです。多くの言語がラテン語に基づいていないと考える限り'M'
、性別は非常に単純に思えます。'F'
もう 1 つの考慮事項は、データベースが本当にアプリケーションから完全に独立したリレーショナル データベースとして動作することを意図しているかどうか (サード パーティのレポート作成、データのインポートとエクスポートなど)、またはデータベースが単なるアプリケーション ストレージであるかどうかです。
IMX、国際化が必要ない場合は、性別に と のchar(1)
フィールドを使用'M'
します'F'
。このようなカテゴリはかなり明白であるため、それ以上のことは必要ありません (システムが複雑な性別などを心配する必要がある場合を除きます)。同様に、'Y'
または'N'
true/false フィールドを回避でき、使用したくない場合は問題ありませんbit
。アプリケーション全体で一貫性を保つだけです。混同しないでください。
それ以外の場合は、コード、コードの説明/展開、および (可能な場合) Active 列を含む検証テーブルを作成して、ユーザーが特定のコードを使用しないことを指定できるようにします (コードはそれを尊重します!)。複雑なシステムでは、アプリケーションのシステム設定領域で、SysAdmin アクセス権を持つユーザーが新しいコードを作成したり、アクティブまたは非アクティブにマークしたり、未使用のコードを検証テーブルから削除したりできます。たとえば、キャンセル済みの PROC_STATUS や、「応答なし」の PROC_SATISFACTION が必要な場合があります。外部キー制約は問題ありませんが、私の経験では、この方法を使用する多くのアプリケーションは FK を使用しません。
アプリケーションに i18n が必要で、データが地域間で移植可能である必要がある場合 (つまり、ドイツのデータベースは、言語の変更のためにいくつかの更新を行うだけで、中国のアプリケーション サーバーに接続して正常に機能できる必要があります)、実際にはデータを保存することはできません。ベース テーブルのコード。おそらく、ルックアップ ID 整数、ユーザーが地域に使用するコード、そのコードの長い名前、およびアクティブ/非アクティブ オプションを持つ検証テーブルにマップする整数を使用する必要があります。適切な i18n には、インストールに応じて、これらのテーブルに正しい値を事前入力することが含まれます。