0

私のデータベースにはテーブルがあります:

Products{ProductId, CategoryId, Name} // parent table
Procesors{ProductId...} // 1 to 1
HardDisks{ProductId...} // 1 to 1
MotherBoards{ProductId...} // 1 to 1
Categories{CategoryId, Name, ParentId}

そして、製品はprocesor, hard disk, mother board etc.
オプション1になります: コントローラーを作成します

ProcesorControllers
HardDiskController
MotherBoardController

など。
オプション2:

CategoryController
ProductController

ProductController方法はどこにありますか

public ActionResult Index(int categoryId, string category)
{... // return View(products);

アプリケーションシナリオでは、CRUD、フィルター製品が必要です

4

2 に答える 2

1

CRUDとFilterは、どのカテゴリの製品にも依存しない一般的な操作です。アプリケーションは、しばらくすると新しい製品が追加されるように拡張される場合があります。

そのことを念頭に置いて、オプション1は拡張できないと思います。新製品が追加されるたびにコードが変更されることを想像してみてください。

オプション2は、私が傾倒しようとするものです。また、重複しないコード、より少ないコードを作成するのにも役立ちます。

于 2013-03-09T01:47:14.967 に答える
1

単純にコントローラーを配置すると、特定のコンテキストのコンテナーとして機能することになっているため、ProductControllerで製品をグループ化することは論理的であるように思われます。

ただし、これは個人的な好みです。考慮する必要があるのは、大規模なコントローラーの保守性と、これらのエンドポイントにアクセスするときに生成するURLです。

于 2013-03-09T01:51:00.040 に答える