

MySQLのカラム名に日本語を使うか、英数字を使うかで迷っています。英数が無難だと思うのですが、日本語の方が簡潔で分かりやすい命名ができるので、もし大した問題が無ければ日本語を使おうと考えています。
そこで3点お伺いしたく存じます。
1. 日本の企業はMySQLのカラム名に日本語を使っているケースが多いのか、それとも英数字のみのケースが多いのか、最近の傾向をご教示頂けますか。統計は無いと思いますので、体感や自社ルールの場合等でも結構です。
2. 日本語を使うことでセキュリティホールができることは考えられますか。例えば、マルチバイト文字はSQLインジェクション対策をすり抜ける・・・等。
3. 自分なら日本語と英数字のどちらを使うか。理由も添えて頂けると幸いです。
当方の開発環境は、PHP(ver. 5.5.9) + MySQL(ver. 5.6.16)です。
お手数おかけしますが、ご教示お願い致します。
No.1ベストアンサー
- 回答日時:
(1)日本語を使うケースはほぼ100%ないですね
(2)セキュリティはあまり関係ないでしょう
カラム名を検索者がダイレクトに指定することはまずありえないので
カラム名の日本語でインジェクションが発生する可能性はほぼありません。
逆に万が一もしそういう仕組みを考えているならすぐ見直すべきです。
(3)上で否定しておいてなんですが・・・
自分でやる環境はほぼ日本語カラム名をつかっています。
他人を気遣う必要がなく迷惑をかけないなら日本語で十分です。
余談
日本語ではまるケースはいろいろ想定されます。
とくにMySQLのバージョンアップ、枯れたシステムの3.23系から5.0以上に
環境をシフトする際にかなりトラブリました。
システム周りの環境はは数年単位でかわっていくものです。
別環境に移行する準備を当初から想定しておかないと、かなり痛い目を見ます。
また、メンテナンスする際も、かならずしも日本語入力できる環境とは
限らないことから、日本語を利用することによるリスクは高めに想定しておく
必要があります。なんらかの日本語が入力できない状況で、データベースから
エクスポートをしようとしてはまるとか、ないことはないと思います。
バグやエラーなど一般的なトラブルの際にも、日本語に起因する問題なのか
そうでないのか、無駄にチェックが増えるので、デバグも不利になります。
全部ひっくるめて、自分でなんとかする覚悟と技量があるなら、日本語カラム名で
やるメリットはあるので、トライする価値はあるでしょう
お話を伺う限りでは、日本語の使用はメンテナンスが一番の問題のようですね。
デバグの手間を考えると、やはり日本語は面倒です。
ですので、今回は英数字にします。
大変参考になりました。
ご回答頂き、ありがとうございました。
No.2
- 回答日時:
1.ほとんど英数字です。
説明を付けたい場合はcommentで各カラムに説明を日本語で書きます。長くSEをやっていますが、日本語のカラム名は過去に一度見ただけですね。
2.全く関係ありません。
適切にプログラムを書いていればセキュリティー上の問題は発生しません。
逆に英数字だけであってもプログラムに問題があればセキュリティー上の問題が発生します。
3.英数字を使ってます。
そもそもプログラムを書いているときは、基本的に全て半角文字で入力しますから一々日本語変換をするのは効率が悪すぎます。
回答を拝見して、日本語のメリットはあまり無い気がしてきました。
確かにcommentで十分ですね。
今回はDBのカラムには英数字で、設計で用意する表に日本語と英数字で書いておくことにします。
大変参考になりました。
ご回答頂きありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
先着1,000名様に1,000円分もらえる!
教えて!gooから感謝をこめて電子書籍1,000円分プレゼント
-
日本語のテーブル名、カラム名の定義について
SQL Server
-
日本語のエイリアスは "で囲う必要があるのでしょうか"
MySQL
-
データベースのINT型項目にNULLはNG?
MySQL
-
4
日本語の表名、列名の利用について
Oracle
-
5
テーブルに主キーを作らないデメリットは?
その他(Microsoft Office)
-
6
接続ができません
MySQL
-
7
DBエラーの意味
MySQL
-
8
mysqlのフィールド名に使える記号を教えてくだ
MySQL
-
9
MySQLで改行を含む文の登録のしかた(改行コード
MySQL
-
10
ODBCの接続に失敗しました(3146)について
その他(Microsoft Office)
-
11
php mysql で WHERE句内に変数を入れる方法を教えてください。
PHP
-
12
PHP ボタンが押されたら処理を実行する
PHP
-
13
【SQL】他テーブルに含まれる値に合致する行を抽出
その他(データベース)
-
14
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
15
MAX値を条件にデータを取得するには?
SQL Server
-
16
like句を使って日本語を検索する場合
MySQL
-
17
抽出条件でデータ型が一致しません。のエラーメッセージが出る
Microsoft ASP
-
18
HTMLフォームのSELECTの幅を一定にするためには?
HTML・CSS
-
19
PHPから、MySQL内に日本語名のテーブルを作成する事ができません。
PHP
-
20
INSERT文でフィールドの1つだけを他のテーブルから取ってきた値を入れたい
その他(データベース)
関連するQ&A
- 1 カラムで指定したカラム名をwhere句で使うことはできないですか?
- 2 MySQL 予約語名で、カラム作成できるでしょうか
- 3 mysqlのカラム名に抽出した結果を使う。
- 4 一方のテーブルではカラム名として、もう一方ではカラムの値として使われている
- 5 mySQL プライマリーキーのカラム名を取得したい
- 6 MySQL 日本語表示 日本語入力できない
- 7 UNIONで、特定カラムだけ結合前のカラム名を取得
- 8 mysqlでデータベース名とユーザ名とユーザ名のパスワードを作りたい
- 9 MySQLカラム構成が違うデータ移行について
- 10 カラム名でseqとidではどちらがふさわしいのでしょうか?
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
SQLのVARCHARとVARCHAR2の違い
-
5
副問合せにLIKE文を使う方法は...
-
6
ERROR 1045 (28000) (using pas...
-
7
mySQLでエラーが出ます。
-
8
ODP.NETのバージョン確認
-
9
phpMyAdminでのエラー「mysql ...
-
10
データベースのフィールドのデ...
-
11
シングルクォーテーションとダ...
-
12
パスワード入力を省略したい
-
13
Float型の時の計算結果がおかしい
-
14
CSVをMYSQLにインポートすると...
-
15
like句を使って日本語を検索す...
-
16
PDFをDBに格納する/取り出すには?
-
17
接続ができません
-
18
「・」中点が入った文字列を条...
-
19
mysqlの起動について
-
20
SQL開発環境ソフトウェアである...
おすすめ情報