0

我正在使用 ASP.NET / C# 开发 CMS。它工作正常,生活很好。但是,决定添加额外的功能来支持更广泛的网站。基本上,当前的 CMS 仍处于 alpha 阶段,但将能够托管为同一组公司运行的多个网站的数据,这些公司都有相同的要求。

我按照下图构建了数据库:

“出于安全原因删除了图像”

现在,除了这个图表,我还被要求添加对不同“属性”下的产品的支持,而不是扇区。这意味着产品现在可以具有一个type和许多其他属性。因此,假设您正在使用我们的网站之一,而我们制作薄纸。产品应该以某种方式支持按“类型”(例如“组织”)和“应用程序”(例如“您如何使用它”)以及将来可能出现的其他未知“属性”进行过滤。

例如,产品可能属于“农业包装”部门,属于“袋”类型,并通过某种应用方式应用。最终结果是能够根据产品的使用方式和/或它们的类型和/或它们所属的部门对产品进行分类。甚至都在一起。

将此类问题包含到数据模型和 CMS 中的最佳方法是什么?

谢谢!

4

2 回答 2

2

看起来你正在采取正确的方法。如果可以为产品分配多个新的“属性”,那么您将需要创建一个新的属性表,您可以在其中定义一组有限的属性。然后通过交叉引用表将该表链接到 Products,就像您对 Products & Sectors 所做的那样。如果只能为产品分配单个属性,则添加 Attributes 表,但不使用交叉引用表,而是在 Products 表中添加 AttributeID 列以连接两者。

然而,我觉得我可能会告诉你一些你已经知道的事情。因此,如果有任何其他信息或您想要的更多细节,也许您可​​以发布更新。

于 2012-10-05T19:08:25.220 回答
0

您正在寻找的模式称为EAV 您最终将得到一个属性表和一个属性值表,其中包含产品 ID、属性 ID 和属性值。

于 2012-10-05T19:17:27.553 回答