sql >> データベース >  >> RDS >> Mysql

MySQLのenumまたはchar(1)

    ない。通常、ルックアップテーブルでtinyintを使用します

    • 比較では照合を使用するため、char(1)は少し遅くなります

    • 混乱:AとP以上に拡張すると

    • 文字を使用すると、タイプを追加するときに制限があります。最後のポイントを参照してください。

    • 私が見たすべてのシステムには、レポートなど、複数のクライアントがあります。 AとPは、各クライアントコードでアクティブとパッシブに解決する必要があります

    • 拡張性:もう1つのタイプ(「Suspended」の場合は「S」)を追加して、ルックアップテーブルに1つの行を追加したり、多くのコードや制約を変更したりできます。そして、クライアントコードも

    • メンテナンス:ロジックは、データベース制約、データベースコード、クライアントコードの3か所にあります。ルックアップと外部キーを使用すると、1つの場所に配置できます

    • 列挙型は移植性がありません

    単一の文字または列挙型を使用することのプラス面

    注:関連するDBA.SE Enumに関するMySQLの質問 があります 。そこでもルックアップテーブルを使用することをお勧めします。



    1. ベストプラクティス:.NET:Oracleデータベースに対してPKを返す方法は?

    2. SQLServerのデータ型の優先順位

    3. MariaDBの日時値から時間を差し引く方法

    4. スクリプトの実行後にユーザーがフォームページに入力したデータを保存するにはどうすればよいですか?