我应该将所有产品信息存储在Product对象中还是在Product对象和CMS Page之间拆分?

时间:2011-03-31 09:04:12

标签: architecture content-management-system e-commerce

我正在构建一个CMS应用程序,我正在添加电子商务功能。我正在思考一个设计选择,并想知道是否有人有想法?

我有产品模型对象,以及CMS中描述每个产品的页面。从逻辑上讲,我想知道有关产品的所有信息是否应该包含在产品型号中,或者是否应该在CMS页面中显示。这两种方法都毫无疑问,我只是想知道是否有人对哪种方法最好以及为什么有所了解。

将信息存储在单独的产品型号和CMS页面模型中似乎更合乎逻辑,因为某些信息属于产品,而某些信息属于该页面。

因此,产品存储了产品固有属性的东西。例如:名称,价格图像,功能和页面存储用于销售产品的东西。例如,好处,它如何运作图表,销售信息。

但我认为在一个模型中存储所有信息更加务实。如果我有一个单独的CMS页面和产品,用户将需要在两个地方输入和维护信息,用户也可能最终无意中将错误的产品绑定到错误的页面,并且要使产品脱机,则需要禁用两件事

我想我有时会花太多时间思考这些事情。有什么想法吗?我认为我赞成务实的做法。

1 个答案:

答案 0 :(得分:2)

  

但我认为存储所有信息   一个模型更实用。如果我   有一个单独的CMS页面和产品,   用户需要输入和维护   信息在两个地方,一个用户   也可能无条件地结束   把错误的产品绑在错误的地方   页面,并使产品脱机   需要禁用两件事。

不,不是。

您假设最终产品数据库将由一个人管理,但实际上,“硬数据”和“营销副本”应由具有不同技能的两个不同类别的用户生成(和维护),目标和角色。也许这意味着一个人戴着两个(或更多)“帽子”,但这不应被视为将所有东西捆绑在一个大对象记录中的理由。

使产品脱机不需要您执行两个不同的操作。我将其建模为主(硬数据)产品记录上的布尔标志(即:有效< - > Y / N),并根据此情况启用或禁用相关的CMS页面。

根据具体情况,顺便说一下,CMS页面仍然可以搜索或显示,而唯一会变灰的部分就是“放入购物篮”按钮(这样客户就可以看到具体的项目是在过去提供的,但现在不再提供。)

因此,项目描述性质(大小等)应该是项目记录的一部分。 任何“销售相关”,即“模糊”,对其他项目的建议,销售折扣,s& h备注等应该是CMS页面(或记录)的一部分。 CMS页面应始终从Item记录中呈现一些数据,因为它本身很有用(客户可以检查它是否太大或动力不足等)并且将提供基准信息以放入CMS页面以防复制编辑器还没有提供任何东西。