私の使っている命名規則(フィールド)

最初に・・・
「命名規則はこれがいい!」というお話ではありません。
「私の場合はこうしています」という程度のお話です。

命名規則の話になると議論が白熱しすぎることもよくあるほど、
皆様それぞれの思惑があり、どれも「なるほどなぁ」というものが多いです。

ご自身の命名規則とは違っていても
「ふーん、こういうのもあるかもね〜」程度に読み流していただければと思います。

さて、今回は「フィールド名」についてです

アルファベットを使うか、日本語を使うか

Webや他のシステムで使う可能性があるもの以外は、日本語を使っています。

理由はいろいろありますが、
意味がわかる言葉にする際、文字数が少なくて済むことが多いということ、
見間違うことが少なく理解しやすいという理由で日本語にしています。

他にも英語が得意ではないという理由も大きいです、、、
フィールド名を考えるのに時間がかかるのは避けたいということもありますが、
これについては「顧客→Client」ではなく、「顧客→Kokyaku」とすることで負担を減らすことはできます。

アルファベットでも日本語でも、間違いにくく、なるべく短い文字数にした方が、
あとあと便利だと思っています。

タイプがわかるようにするか、しないか

タイプ(テキスト・数字・日付・時刻・タイムスタンプ・オブジェクト・計算・集計)は、
全部ではないですが、わかるようにしているフィールドもあります。

必ずわかるようにしているのが、計算タイプと、集計タイプ。
これらのフィールド名には記号用の文字列をつけています。

他のタイプの場合はほとんどつけないのですが、
タイプがどちらにしているか紛らわしいものやタイプの違いが重要で、
すぐに判別できるようにしておきたいフィールドには記号用文字列をつけることがあります。

使う記号は
「フィールドのタイプを決めるショートカット」の文字列と揃えるようにしています。
(計算タイプだけは違う文字列にしています)


これに従うと、
 テキストは 「 _t ]
 数字は「 _n 」
 日付は「 _d 」
 時刻は「 _i 」
 タイムスタンプは「 _m 」
 オブジェクトは「 _r 」
 集計は「 _s 」
となります。

計算だけは「 _c 」にしており、
かつ、結果どのタイプの値が返されるかがわかるよう
「 _ct 」「 _cn 」「 _cd 」など、テキストが返されるのか、
数字が返されるのかがわかるようにしています。

なぜ計算だけ「 _l 」を使わないのか?というと、
一番最初にフィールド名にタイプがわかるようにしたいと思ったのが計算タイプで、
その時「計算は英語で calculation だから c にしよう」と思ってつけていたから。
(こういうときは英語を使おうとする、一貫性のない思考^^;)

最初は「金額_c」とか「氏名_c」と、計算タイプだとわかればいいと思っていたのですが、
テキストなのか数値なのかわからない「顧客番号_c」のようなフィールド名が出てきて
テキストか数値かわかるようにしたいなぁと思うことがありました。

そこで、テキストは「t」、
数値はヌーメリカルの「n」(ナンバーのnでもあり)を追加することにし、
それで現在の形、
「顧客番号_ct」「金額_cn」「氏名_ct」という命名規則になりました。

が、、、
この命名規則にそって考えていくと、時刻はタイムのtになってしまいます。
そこで「フィールドのタイプを決めるショートカット」を使うことにしました。
幸いテキストは「 t 」、数字は「 n 」だったので、
今までのフィールド名を変更することもなかったので安心して決められました。

計算タイプもこの規則性に従うと「 l 」にしなければならないのですが、
途中から変えるのはよくないし、Lを小文字にすると細い縦線になってしまい見づらい。
なので「 c 」のままにすることにしました。

それともう一つ、今はフィールドのタイプではなく、オプションになっていますが、
グローバルにしているフィールドには「 _g 」をつけます。
これも「顧客番号_gt」「顧客番号_gn」のようにしています。

記号は前につけるか後ろにつけるか

私は後ろにつけます。

書籍や他の方が作ったシステムをみていると前につけていることが多いように感じていました。
なので「後ろにつけるのは邪道と思われるかも」と思い、今までこの話は書いていなかったのですが、
先日あるユーザー会でこの話が出た際、
私の大切な先生でもある方が「私も後ろにつけますよ」とおっしゃっていたので
ほっとしたので書いてみようかなぁと思えるようになりました(^^;

後ろにつけることにした理由を書いておきます。

リレーションを組むときやレイアウトでフィールドを選ぶ際、
記号が先になっていると見える文字数が少なくなるのが嫌だったのです。

それと、フィールド定義の画面で並び替えてフィールドの確認をする際、
フィールド名で並び替えたときに似たものが並んでてくれる方が「私にとっては」便利なんです。
タイプ別に並べたければそれは機能として持っていますし・・・。

そんなことで今の命名規則になりました。

最後に・・・

皆様それぞれに理由があって、いろんな命名規則を使っていると思います。
命名規則がない方は、これから必要に応じて決めていけばいいと思います。

これ、正解っていうのはないと思うのですが、
あえていうなら「その人が使いやすいもの」であればそれが正解だと思います。

正解かどうかではないのですが、一つだけ気をつけた方がいいと思うことがあります。

1つのシステムの中で複数の規則が混在するようなことは避けた方がいいと思います。
迷う時期があるのは仕方ないことですが、
それでも1つのシステムを作ってる途中で規則を変更するのはやめた方がいいと思います・
これだけは注意した方がいいことだと思います。

今回の私の命名規則についてが、どなたかのお役に立つことがあればうれしいです。

色々ご意見もあるかもしれませんが、小心者なので、
お手柔らかにそっとご連絡いただけるとうれしいです(^^)


投稿者