プログラマーを悩ませる、命名の難しさについて
@suno88 @nabetaro 元のデータが駐車場「有り・無し」だけの台数情報がない場合と「駐車場n台分」とが混在してる場合を考えてました。「有り」を「>0」で表現しちゃうと「1」で1台分だけあるのか「有り」を表現したいのかがわからなくなると言えばいいでしょうか。
2014-03-28 16:31:36@rizumita @suno88 @nabetaro りずさんの指摘とはまたちょっとずれるかもしれませんが、英語的表現と他の項目と名前合わせるのとどっち優先されますか?隣でseatCapacityと宣言しててparkingVacancyのほうが表現がより合ってたとして。
2014-03-28 16:37:07@rizumita @suno88 @nabetaro つまり、そのクラス内では台数・席数・あたりは「capacity」でまとめたいと感じるんです。ああ、日本語の例で言えば「にんじん」と「いちご」を同クラス内で数えるならにんじんを「本」ではなく「個」で数えたいみたいな?
2014-03-28 16:40:33@stealthinu @nabetaro なるほど、理解しました。では PARKING と PARKING_CAPACITY の 2 つのカラムを持ち、台数不明の場合は PARKING_CAPACITY を null か 0 にするのがよさそうです。
2014-03-28 16:37:19@suno88 @nabetaro DBカラム名の場合だとparkingもしくはhas_parkingをboolで持っててparkingがfalseの場合にparking_capacityをnullにしとくってことですね。おかげさまでだいぶなじんできました。
2014-03-28 16:44:42@stealthinu @nabetaro null が入ると集計時に面倒なので、PARKING_CAPACITY を not null にして台数不明時は 0 を入れるのが私は好きですが、null のほうが自然かもしれません。ここは好みの問題ですね。
2014-03-28 16:47:40ちょっと脇道。正規化するしないも関係するぞと
@risunosuke あれ? 駐車場の収容台数不明時に null を設定するか 0 を入れるかは、正規化と関係あるんでしょうか。
2014-03-28 19:42:08@risunosuke 調べたらどうやらそのようですね。まったく記憶にない(汗)。今夜、帰ったら『プログラマのための SQL 第 2 版』を読み返してみます。
2014-03-28 19:52:22再び本筋
@stealthinu @nabetaro 駐車場があるけれど台数が不明の場合は PARKING = 1、PARKING_CAPACITY = 0 or null にするということです。(つづく)
2014-03-28 16:47:23@rizumita @suno88 @nabetaro すのさんのフォローのとおりです~ 元が~flagって表現がなんで悪いのかってあたりからスタートしてまして。僕はどうしてもbool系のデータ保持領域に~flag付けたくなりがちなのでどう考えればよいか教えてもらってました。
2014-03-28 16:47:43@suno88 @nabetaro PARKINGは駐車場有りなしの「フラグ」で良いのですよね?「1」としたのはなにか意味ありですか?
2014-03-28 16:50:27命名則の件、だいぶ勉強になってるが、これを過去に書いたソースやらDBやらに反映させようと思うと orz という気持ちになるな。どうすべ。
2014-03-28 16:53:49@stealthinu @nabetaro そうです。PARKING はフラグです。boolean 型のないデータベースを想定して 0 = なし、1 = ありとしました。boolean 値を持てるデータベース、もしくはプログラム側なら、もちろん true/false で。
2014-03-28 16:54:34@suno88 @nabetaro 了解しました。名前は「PARKING」だけということですね。もしPARKING_CAPACITY項目自体が不要で有り無しだけの場合で良いとして、PARKINGの型を見ればそれが有り・無しを表してるかわかりますが、項目名だけではわかりませんよね。
2014-03-28 16:58:26@suno88 @nabetaro そう考えると HAS_PARKINGのほうが(その点で考えるとPAKING_FLAGのほうも)ベターだと思いました。ということでDB項目名でも「HAS_PARKING」がいいかな?というのが今の到達点。
2014-03-28 17:01:46@stealthinu @nabetaro DB の話として、カラム名を HAS_PARKING にしてブール値であることを主張する、PARKING だけでもデータが 0/1 だからいいでしょとする。私はどちらでもよいと思います。でも PARKING_FLAG、お前はダメだ!
2014-03-28 17:03:09@rizumita @suno88 @nabetaro 命名則の件、みなさま大変ありがとうございます。~Flagの件とか、こうした方がいい、みたいなのは聞いててもなんか気分的にしっくりきてなかった部分、今日いろいろ聞いたことでだいぶ体になじみました!
2014-03-28 17:07:01以前にもツイートした、データベースのカラムやプログラムの変数名などに「_flag」とつけることに対する私の考えはこちらです。http://t.co/WH5LAKMszg
2014-03-28 17:08:39