8

私がデータベースの設計を始めたとき、何らかの理由で、テーブルと列には常にスネーク ケース (my_table_name) を使用することが推奨されていました。これは特にMySQLに当てはまると思います。その理由は、大文字化が失われたり強制されたりする場合があったからです。今日に目を向けると、多くの人が Pascal Case ("MyTableName") を使用しているのを目にします。

テーブル名と列名にまだスネークケースを使用する理由はありますか? 大文字化が失われたり強制されたりする可能性があるインスタンスはありますか (データベース エンジン、OS などを変更した場合など)?

4

3 に答える 3

3

http://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.htmlから:

「MySQL では、データベースはデータ ディレクトリ内のディレクトリに対応します。データベース内の各テーブルは、データベース ディレクトリ内の少なくとも 1 つのファイルに対応します (ストレージ エンジンによっては、さらに多くの場合もあります)。したがって、基盤となるオペレーティング システムの大文字と小文字の区別これは、データベース名とテーブル名の大文字と小文字を区別する役割を果たします. これは、データベース名とテーブル名が Windows では大文字と小文字を区別しないことを意味します, そしてほとんどの種類の Unix では大文字と小文字を区別します. 注目すべき例外の 1 つは Mac OS X です.大文字と小文字を区別しないデフォルトのファイル システム タイプ (HFS+)。」

つまり、データベースの下のファイルシステムに依存します。

現在、ほとんどの mysql サーバーは、大文字と小文字を区別する ext3/ext4/bttrfs/namesomeother ファイルシステムを持つ Linux システムで実行されています。たとえば、FAT12 では大文字と小文字が区別されず、大文字と小文字が保持されません。そのため、データベース MyDB は、作成後に mysql によって検出されない場合があります。Fat32 と HFS+ は大文字と小文字を区別しませんが、大文字と小文字を保持します。そのため、Mydb と myDB で問題が発生する可能性があります。

そのため、データベースが FAT12 システムでホストされている可能性があることがわかっている場合でも、ケースを監視することをお勧めします。

于 2013-04-29T21:45:34.123 に答える