前回お約束したように、「フラグ」と「区分」の違いについてお話したいと思います。
最近、話がとみに細かくなってきています。
私個人を知っている方は、「こんなに細かい人じゃないはず、もっとアバウトなはずなのに」と思っていらっしゃると想像しています。
しかし、細かければ細かく決めておいたほうが良いことも多いのです。
仕事をすることを考えた場合に、「作業」といったものに仕事を分解してしまうと、確かに、面白味は欠けますが、生産性が各段と向上することに気づくはずです。
何をどのようにするか、つまり「WHAT」「HOW」といったものが明確であればあるほど、悩んだり考えたりする時間が減って生産性は高まるのです。
そこで、この「フラグ」と「区分」の話になるわけです。
あくまでも、私が個人的に決めているものなので汎用的かどうかは一切保障しません。すみません。
まず「フラグ」ですが、YESかNOか、要するにビットとして扱うものを、私はフラグとして分類しています。
次に「区分」は、1が「売上」、2が「返品」、3が「値引き」、4が「無償」といったように、数個(多くてもせいぜい10~15個くらい)の区分けをするものに使っています。
「では、都道府県は?」と言われれば、47もあるのですし、今後、合併や分解があるかもしれないので、こういったものはコードとして分類します。
そしてデータ型は、フラグはchar(1)、区分はintを使います。
(参照:SQL Serverの場合)
フラグも区分も共に、nullを許さない項目です。
デフォルトでフラグは'N' (NOの意味、0でも構いません)、区分は0です。
かつて、「フラグを'Y'と'N'にしているのは、いかがなものでしょう」とお叱りを受けたこともありますが、私の設計では、フラグはchar(1)で、'Y' と 'N'です。
名前は、「請求済フラグ」とか「未請求フラグ」とか、具体的に'Y'や'N'が何を意味しているかがはっきり分かるものを付けています。
しょうもない話かもしれませんが、細かいことでも決めておくと、生産性は確実に上がりますよ。
Vol.00164