Sitecore 内容树项目之间多对多关系的最佳实践?

Sitecore 内容树项目之间多对多关系的最佳实践?,sitecore,sitecore6,Sitecore,Sitecore6,在我的内容树中,我有一个表示城市的内容项树。对于其中的每一个,我希望有一个逻辑连接到一组。。。比如说。。。2小时车程内的国家公园。所以一个城市会有多个公园。。。每一套都会不同。。。当然,公园也会与不止一个城市联系在一起 什么样的项目和字段设置适合这种情况?我将为这些项目创建一个自定义的渲染器,所以我最关心的是如何在Sitecore中实现这一点,以最大限度地提高易用性和性能 我正在使用Sitecore 6.2 来自SDN的交叉发帖,请原谅我。。。但是我想在StackOverflow上鼓励更多的Si

在我的内容树中,我有一个表示城市的内容项树。对于其中的每一个,我希望有一个逻辑连接到一组。。。比如说。。。2小时车程内的国家公园。所以一个城市会有多个公园。。。每一套都会不同。。。当然,公园也会与不止一个城市联系在一起

什么样的项目和字段设置适合这种情况?我将为这些项目创建一个自定义的渲染器,所以我最关心的是如何在Sitecore中实现这一点,以最大限度地提高易用性和性能

我正在使用Sitecore 6.2


来自SDN的交叉发帖,请原谅我。。。但是我想在StackOverflow上鼓励更多的Sitecore社区

你打算从公园到城市进行任何查找吗?例如,您是否需要说查找与给定公园关联的所有城市?或者仅仅是找到与给定城市相关的所有公园?如果您需要在两个方向进行查找,事情会变得有点棘手,我可能会建议使用搜索索引。但是,如果您的查找仅在一个方向上进行,则可以使用树状列表字段将一个项与多个其他项进行关联


根据您的描述,我不完全确定您是否真的需要使用多对多关系,或者是否只需要一对多路径?

您是否打算从公园到城市进行查找?例如,您是否需要说查找与给定公园关联的所有城市?或者仅仅是找到与给定城市相关的所有公园?如果您需要在两个方向进行查找,事情会变得有点棘手,我可能会建议使用搜索索引。但是,如果您的查找仅在一个方向上进行,则可以使用树状列表字段将一个项与多个其他项进行关联


根据您的描述,我不完全确定您是否真的需要使用这种多对多关系,或者是否只需要一对多路径?

对于这种关系,您需要以下结构:

城市模板应具有名为Parks的多列表类型字段。这个领域的根源应该是Parks Home>Parks。与Park模板具有名为Cities的多列表字段的方式相同。此字段的来源应查找Cities Home>Cities的根

这样,您就可以轻松地执行任何类型的请求


希望这能有所帮助。

对于这种关系,您需要以下结构:

城市模板应具有名为Parks的多列表类型字段。这个领域的根源应该是Parks Home>Parks。与Park模板具有名为Cities的多列表字段的方式相同。此字段的来源应查找Cities Home>Cities的根

这样,您就可以轻松地执行任何类型的请求


希望这对您有所帮助。

如果连接必须是双向的,您可以通过向保存事件添加一些代码来处理它

让我们假设我们有一个城市模板和一个名为relatedparks的字段,还有一个公园模板和一个relatedpcities字段

假设我们在“相关公园”字段中保存一个包含两个公园的城市项目。在保存事件中,我们可以检索两个公园,并将当前保存的城市插入这些公园的相关城市字段中


我并不是说这是最好的方法,只是另一种选择

如果连接必须是双向的,您可以通过向save事件添加一些代码来处理它

让我们假设我们有一个城市模板和一个名为relatedparks的字段,还有一个公园模板和一个relatedpcities字段

假设我们在“相关公园”字段中保存一个包含两个公园的城市项目。在保存事件中,我们可以检索两个公园,并将当前保存的城市插入这些公园的相关城市字段中


我并不是说这是最好的方法,只是另一种选择

如果它是M:N,它就不是一棵树。只是说-我想你对Sitecore不熟悉吧。。。所有内容都是内容树的一部分。如果它是M:N,则它不是一棵树。只是说-我想你对Sitecore不熟悉吧。。。一切都是内容树的一部分。如果他需要公园到城市,他可以从另一个角度进行渲染?不可能有任何其他结构适合web界面。是的,我们最终将在两个方向上进行查找。我不熟悉搜索索引。我想你可以把它看成是一对多的倍数。。。但这不是一回事吗?如果他需要公园到城市,他可以从另一个角度进行渲染?不可能有任何其他结构适合web界面。是的,我们最终将在两个方向上进行查找。
我不熟悉搜索索引。我想你可以把它看成是一对多的倍数。。。但是这不是一回事吗?这个模型唯一的问题是你必须在两个地方维护关联。例如,如果将Park1添加到多列表中,或者更好地添加到纽约的树列表字段中,则还需要将NY添加到Park1中的多列表字段中。但是,您可以像Gabriel建议的那样设置一个保存和删除处理程序,以使此过程更加轻松。谢谢Yan,这是迄今为止最好的答案。此模型的唯一问题是您必须在两个地方维护关联。例如,如果将Park1添加到多列表中,或者更好地添加到纽约的树列表字段中,则还需要将NY添加到Park1中的多列表字段中。但是,您可以像Gabriel建议的那样设置一个保存和删除处理程序,以使此过程更轻松。谢谢Yan,这是迄今为止最好的答案。如何为单个项目或模板类型连接到保存事件?我以前不知道该怎么做,所以添加这样的处理程序是有问题的。如何将单个项或模板类型的保存事件挂钩?我以前不知道该怎么做,所以添加这样的处理程序是有问题的。
   Cities

       NY
       London
       Paris

   Parks

       Park1
       Park2
       Park3