在我的数据库中,我有一个表格:
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,过滤产品
答案 0 :(得分:1)
CRUD和过滤器是与任何类别的产品无关的通用操作。您的应用程序可能会扩展,以便在一段时间后添加更新的产品。
考虑到这一点,我会说选项1 不会扩展。想象一下,每次添加新产品时都会更改代码。
选项2 是我倾向于倾向的。它还可以帮助您编写非重复的代码,更少的代码。
答案 1 :(得分:1)
简单地将控制器放在一起应该作为给定上下文的容器,因此在ProductController中对产品进行分组似乎是合乎逻辑的。
然而,这是个人偏好。您需要考虑的事项是大规模控制器的可维护性,以及访问这些端点时要生成的URL。