【未解決】DB設計でフラグの扱いあれやこれや

ある「通知」を操作するカラムを新設する際に。。

 

・全て通知される

・ある条件下のみ通知される

・全く通知しない

 

っていうかんじの定義をしたいとして、

かつ、ある条件下ってのが今後増設が考えにくい(しかし未来永劫ないとは言い切れない)場合、

 

0 == 全く通知しない

1 == ある条件下のみ通知される

2 == 全て通知される

 

とするのがいいか

 

-1 == 全く通知しない

0 == 指定なし(全て通知される)

1 == ある条件下のみ通知される

 

とするのがいいかで悩む。

 

 

前者は、defaultとして2をDBに放り込むのがちょっと気持ち悪く感じるけど、直感的にわかりやすい気がする。

結論からいうと今回はこちらを採用。

万が一ここに並列に足したい「条件」が増えたときに、ちょっと詰むだろうなとは思いつつ。

 

後者は、「何か特別な条件下だけ発動させる」という面で扱いやすそう。

汎用性はこっちの方があるかもしれないけど、複合的な条件を設定したい場合、

きっとカラムを新設することになる。予感がする。

 

ちなみに

0 == 通知しない

1 == 通知される

にしといて、別カラムで

0 == 条件なし

1 == 条件の指定

2 == 条件の指定

3 == 条件の指定

ってするのも考えたけど、オーバーすぎる気がして今回は不採用。

 

 

すごいよくあるちょっとしたことなんだけど、

他の人はどんなふうに定義しているのか気になった事案でした。