c# - Kentico 中的多对多关系

标签 c# content-management-system many-to-many kentico

关于如何构建基于多对多关系的 Kentico CMS Portal 实现,是否有任何最佳实践(例如,一个销售食品并有很大一部分食谱的网站——每个产品都用于许多食谱,每个食谱可以使用网站上销售的许多产品)?

Kentico 是否只是执行此操作的错误工具,或者 Kentico 内部是否有处理这种关系的解决方案?

最佳答案

我会考虑内置的相关文档系统。在文档的属性选项卡下,有一个相关文档的部分。此处描述了该功能:

Document Properties, Related Docs

如果这是您网站的一项重要功能,您可以将该部分作为另一个选项卡添加到现有页面、设计、表单、属性选项卡中,以便于访问。您只需要修改 Site Manager -> DevelopmentModules 区域。另一个提醒:它们在技术上是单向关系,但您可以构建双向查询:

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 的文档的所有相关文档。

如果您精通数据库,相关文档的表结构非常简单:

Related Document Tables

因此,正如 McBeev 所建议的,我将为产品和食谱创建自定义文档类型。然后你可以按照我上面概述的那样链接它们。祝你好运!

关于c# - Kentico 中的多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5232618/

相关文章:

c# - 当 URL 中有尾随空格时 WebAPI 路由 404

c# - 使用扩展方法的集合随机化

Joomla newsflash 项目链接到单独的页面

html - 在 CSS 中有没有一种方法可以在不必使用额外的 HTML 的情况下防止寡妇?

python - sqlalchemy线程消息系统

c# - 进步 4GL 和 .Net

c# - 图表控件去除标签箭头

java - Java 中是否有带有 MySQL 的非常小的 CMS?

doctrine - Doctrine 1.2 中多对多表的 SoftDelete

sqlite - 高级SQLite查询多对多关系