簡體   English   中英

Kentico中的多對多關系

[英]Many-to-many relationships in Kentico

是否有關於如何構建基於多對多關系的Kentico CMS門戶實施的最佳實踐(即銷售食品並且有大部分食譜的網站 - 每種產品都用於許多食譜,每個食譜可以使用網站上銷售的許多產品)?

Kentico是否只是錯誤的工具,或者Kentico中是否有解決方案來處理這種關系?

我會考慮內置的相關文檔系統。 在文檔的屬性選項卡下,有相關文檔的部分。 此處描述了該功能:

文檔屬性,相關文檔

如果這對您的網站來說是一個很大的功能,您可以將該部分作為另一個選項卡添加到現有的頁面,設計,表單,屬性選項卡中,以便於訪問。 您只需要修改站點管理器模塊區域- >開發 另一個問題是:它們在技術上是單向關系,但您可以將查詢結構化為兩種方式:

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的Document的所有相關文檔。

如果您在數據庫中占據一席之地,相關文檔的表結構非常簡單:

相關文件表

正如McBeev建議的那樣,我會為產品和配方創建自定義文檔類型。 然后你可以按照我上面的描述鏈接它們。 祝好運!

開箱即用它並不能很好地支持多對多,但是你應該可以通過一些自定義開發來實現它。 創建2自定義文檔類型,例如食譜和產品,然后創建自定義表單控件以管理關系。 然后,您將窗體控件放在頁面上,以便字段可以在節點的“表單”選項卡上進行管理。 表單控件(如果要從兩種類型進行管理,則為2)將是多對多類型控件,例如復選框列表或多選。 然后在保存時,您將使用API​​或SQL代碼保存到連接表而不是文檔本身(或子文檔類型)。 您可能需要手動創建連接表。

http://www.kentico.com/docs/devguide/index.html?developing_form_controls.htm

可以使用kentico CMS直接執行此操作,無需編寫任何自定義代碼或查詢。

幸運的是,我寫了一篇關於它的文章並成功實現了它,它為內容管理員提供了足夠的靈活性來管理關系數據而無需開發人員。

通過轉發器的相關內容

使用自定義表格並編寫自己的自定義Web部件將幫助您實現這些目標。

您還可以為產品和配方創建自定義文檔類型,然后使用內置鏈接到現有文檔功能。

我同意dvanbale,你也可以用自定義表來完成這個。

這有點取決於你想要做什么。

我已經碰到了幾次,並使用sql函數和sql轉發器為內容樹的父子層次結構快速解決了問題。 絕不是一個強大的實現。 如果這是您的迫切需要,我同意自定義表可能是要走的路。

我其實只是發布了我所做的詳細版本。 我在搜索時發現了這個,看它是否被編入索引。 你可以在這里看到它:

http://www.kenticosolutions.com/Developer-Tips/Tip/May-2011/Many-to-Many-relationships-in-the-Kentico-CMS-Cont.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM