0

アイテムのテーブルがあり、各アイテムに特定の数の画像を割り当てることができます。そのうちのいくつかは注目の画像です。一度に有効にする必要があるのは、これらのうちの 1 つだけです。

画像テーブルに次のフィールドがあります: 特集 (0 または 1) 有効 (0 または 1)

MVC アーキテクチャに従って、たとえばイメージを有効にするときに、コントローラーまたはモデルで次のことを行う必要があるかどうかはわかりません (少し複雑なので、例を単純化しました)。

  1. この画像が主役かどうかを確認します。
  2. 特集されている場合は、注目の画像を無効にして、これを有効にします。

モデルからコントローラーにその状態 (注目されているかどうか) を取得し、コントローラーがモデルにすべての注目の画像を無効にするように命令させ、次にモデルにこれを有効にするように指示させるか、モデルにこれをすべて内部的に管理させることができます。

私が知っている限り、そして私が時々読んだ限りでは、コントローラーはエンジンと言われているのに対し、モデルは単にコントローラーの命令を実行するため、私の質問が出てきました。

ただし、この場合、コントローラーがそれらを認識しなくても、モデルはこれらの制約をブラックボックスとして管理するために自立している可能性があると思いました。

どう思いますか?

4

1 に答える 1

1

items テーブルのフィールドを増やすことをお勧めします。そして、有効な画像のIDを保存します(主役または有効な画像にすることができます)。

この方法は両方の問題を解決します

1.Check if this image is featured.
2.In case it is featured, disable any featured image and enable this one.

毎回、有効になっている、または特集されている画像のIDを保存するだけです。そのため、images テーブルをあまり更新する必要はありません。

于 2012-12-14T20:26:15.953 に答える