データベースのテーブル設計時にテーブル名やカラム名について、
「あとになって苦労しない」うまい命名のノウハウがありましたら教えてください。
よろしくお願いします。
とにかく「安易に省略しない」ことでしょうか。
いまはIDE環境が自動で補完してくれるので、長い名前も平気で付けます。
データベースは送受信するSQLが膨れ上がるのでちょっと躊躇しますが、なるべくストアドで対応するということで、やはり「正しい名前」をつけますね。
下記コーディング規約に名前付けについての規約があって、それに従うようにしています。
http://www.objectclub.jp/community/codingstandard/
下記記事も参考になります。
http://jibun.atmarkit.co.jp/lskill01/rensai/kokugo01/kokugo01.ht...
ただ、英語の素養がないので、名前決めで物凄い時間を使ってしまいます。manageとmanagementをmanageableとmanagingとmanagedでどれを使おうとか(苦
DBがORACLEなら、日本語名でつけるというやり方もあります。
賛否両論があるかと思いますが・・・。
ORACLE10でJavaでJDBC経由で問題なかったので、
たぶん大丈夫かと。
ORACLEの回答では、日本語フィールド名、テーブル名は "でくくれば大丈夫と話でした。
例:
SELECT "フィールド1","フィールド2" FROM "テーブル1"
回答どうも有り難うございます。
参考にさせて頂きます。
http://www.tcct.zaq.ne.jp/ayato/programming/java/codeconv_jp/Cod...
ネーミング規約とか参考にしたらいいでしょう。
http://q.hatena.ne.jp/1096951162
過去の質問ですが、役に立つと思います。
知らなかったものが結構ありました。これは参考になります~
回答有り難うございました。
column名や変数名については、うかつに英単語をつかうとプログラム言語やSQLのキーワードにぶつかって、えらい目に会うことがあります。なのでなるべくローマ字のほうがいいのかなと思います。たとえば「名前」を入れるcolumnならnameでなくnamae。他人が見ても日本人に一般的でない英単語を使うより、ローマ字のほうがわかりやすいということもあります。もっともカタカナ英語なら、英語で書きます。「クラブ」というのをkurabuと書くのは変な感じがするので。
ただ関数名については、どうしても英単語になっちゃいますね。「さがす」というのをsagasu()じゃおさまりが悪いので、search()とかにしています。
それとローマ字を書くときにヘボン式とか何とか流儀があるみたいですが、これは統一しておかないと自分自身が間違えるので気をつけています。「まどぐち」をmadogutiでなくmadoguchiにするということです。
また2つ以上の単語をくっつけるときにアンダーバーでつなぐ方法や各単語の先頭だけ大文字にする方法などありますが、DBサーバでは大文字小文字を区別しないのが多いので、アンダーバーが妥当でしょうか。
いろいろ書きましたが、命名規則はひとそれぞれだと思いますのでとくにある教科書に従うという必要はないと思います。ただし統一感があったほうが、自分が楽だし人に見られたときにいい印象を与えると思います。
なるほど、そういったやり方もあるんですね。
参考にさせて頂きます。有り難うございます。
私もうまい英文表記が思い浮かばず苦労していましたが、ローマ字と英単語併記にしてからはさくさくです(笑)。
英単語を使う場合には、省略形を使わないとか、省略する場合のルールを明確にする、などの規則を決めておきます。ローマ字も、音引きは後で読みにくいので「購入」は「konyu」と表記するなどのルールがあるとタイプミスが減ります。
最近のツールでは変数名などをソートして出力してくれますが、その際に、意味のあるカタマリが同じあたりに出るように語順などを気を付けてます。たとえば、
1.商品を購入したユーザへのfk
2.商品を購入した日時
3.合計購入金額
これをfkKonyusha, kokyuHiduke, gokeiKonyu…としてしまうと、並べ替えた時にあちこちとっちらかってしまうのでkonyuUserFK, konyuHiduke, konyuGokeiKingakuにしてしまうとか。
また状態遷移を示すステータスもStatusKaisi, StatusHajimari, StatusOwari…だと順番がはっきりしないので、Status1Kaisi, Statu2Hajimari, Status3Owari…などと書いたりします。仕様変更で途中のステータスが増えるとアレですが(笑)。
動詞を使う場合には、主語を意識するというのも良いと思います。クライアント/サーバ型のアプリを書いていると「おくる」「うける」「わたす」…なんてのが混乱しがちなので。
一番勉強になるのは、一つ仕事を終えたら命名規則についても反省をする、ということでしょうか。「こうすれば見やすかったなぁ」と思ったことをメモしておいて次のプロジェクトに反映します。
そうすれば、だんだん洗練されていきます。
ローマ字併記のやり方は新鮮です。
いろいろあるんですね、むむ、奥が深い。
回答どうも有り難うございました。
なるほど、SQLが膨れることは気がつきませんでした。
名前決めには皆さんも苦労されてるようですね、どうも有り難うございました。