关于如何构建基于多对多关系的 Kentico CMS Portal 实现,是否有任何最佳实践(例如,一个销售食品并有很大一部分食谱的网站——每个产品都用于许多食谱,每个食谱可以使用网站上销售的许多产品)?
Kentico 是否只是执行此操作的错误工具,或者 Kentico 内部是否有处理这种关系的解决方案?
最佳答案
我会考虑内置的相关文档系统。在文档的属性选项卡下,有一个相关文档的部分。此处描述了该功能:
Document Properties, Related Docs
如果这是您网站的一项重要功能,您可以将该部分作为另一个选项卡添加到现有页面、设计、表单、属性选项卡中,以便于访问。您只需要修改 Site Manager -> Development 的 Modules 区域。另一个提醒:它们在技术上是单向关系,但您可以构建双向查询:
SELECT *
FROM CMS_Document d
JOIN CMS_Relationship r
ON (d.DocumentID = r.LeftNodeID
OR d.DocumentID = r.RightNodeID)
Where DocumentID = 100
以上代码会将 CMS_Document 表连接到 CMS_Relationship 表,为您提供 ID 为 100 的文档的所有相关文档。
如果您精通数据库,相关文档的表结构非常简单:
因此,正如 McBeev 所建议的,我将为产品和食谱创建自定义文档类型。然后你可以按照我上面概述的那样链接它们。祝你好运!
关于c# - Kentico 中的多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5232618/