多个模型与单个模型

Sin*_*nan 8 php model-view-controller hmvc kohana-3

我对MVC有疑问.特别是关于模特.假设我的数据库中有一个类别表.现在,我希望获得详细视图的单个类别和列表的多个类别的结果.此外,我可能需要查询多个类别以用于不同目的.

现在的问题是; 拥有两个独立的模型更有意义吗?类似于单个类别的操作的类别模型和类别多个类别的模型操作.

我的想法是,当我使用category模型时,我不需要多个类别的其他详细信息.因此将它们分开对我来说是有意义的 但我不确定.

有任何想法吗?

Luc*_*ile 5

问题是您的模型应该支持处理单个和多个记录查询.

所以我的建议是使用一个模型并开发您的方法来检索您需要的确切数据.

为单个数据源设置两个模型只会使事情复杂化......

  • 我不同意这一点,我认为问题的重点已被遗漏.首先,它是一个设计选择,无论您的模型是否包含查询数据库的逻辑.一些使用选择将逻辑与buiness对象(数据模型)和返回列表或单个业务对象的数据适配器/服务分开.无论哪种方式,关键是所提出的第二个对象不会复制任何东西,它只是通过存储单个实例模型的集合以及有关该集合的信息的一些其他属性来重用现有模型.这是个好主意 (2认同)

tho*_*aux 2

这取决于,您是否需要为单个类别和多个类别保存不同的数据?

如果是这样,您的建议是有意义的,否则您的模型中将会有多余的字段。我建议明确区分这两种模型(所以不是CategoryCategories,而是例如SingleCategoryMultipleCategories)。

如果不是,我建议为一个类别使用一个模型,但为单个和多个类别操作定义不同的操作。我想这就是你的情况。

在后一种情况下,您可以使用抽象超类Category,然后定义两个子类:一个包含单个类别的操作,一个包含多个类别的操作。