ベストプラクティス-メタデータと機能定義データを混在させる必要がありますか?

StackOverflow https://stackoverflow.com/questions/164752

  •  03-07-2019
  •  | 
  •  

質問

「ステータス」のDBテーブル列がある単純なニュース記事Webアプリケーションの場合を検討してください。次のラジオボタンセットからアクセスできます。

ステータス-[x]公開[]ドラフト[]アーカイブ

... where" Publish&quot ;;は記事を公開し、「ドラフト」を表示します。および「アーカイブ」しない。機能的に「ドラフト」および「アーカイブ」同じことを行いますが、追加のメタデータの意味を伝えます。 「show」の2つの機能状態および「非表示」 「公開」、「下書き」のメタデータとともにおよび「アーカイブ」 " status"の同じ列に混在しています。

これは良い習慣ですか?これは非常に単純なケースですが、より大きなケースでは、このようなプラクティスの欠陥が明らかになる可能性があります(またはそうではありません)。

役に立ちましたか?

解決

機能状態は動作に関するものです-データベースでモデル化する必要はありません。ビジネスロジックが「表示」のみを重視する場合ステータスが「公開済み」の記事-表示列でデータの複雑さを2倍にする理由はありません。

ビジネスロジックで記事を表示するか非表示にするか(おそらくIsApprovedフラグ)を決定するために追加のデータが必要になると判断した時点で、そのデータを保存できます。

別の角度から見る-「表示」の別の列を追加する場合、「ドラフト」のステータスの記事はどうなるでしょうか。および「表示」 = 1ですか?ビジネスルールによると、それは無効な状態です。

他のヒント

この例では、これが適切な機能であると言えます。

メディアで誰かが誤ってショーにヒットしたWTFを見てきました[x] ドラフト[x]を同時に。

現状では、誤って下書きを表示することはできません。記者は次のようなもので悪名高いため、これは新聞では重要です。

StackOverflowのJohn Doe氏は次のように述べています。「---あのいf * ckerが言ったことを思い出せません-テープを確認して後で記入してください」

おそらく、印刷すべきではありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top