0

在设计可以处理 Mega Menus 结构的自定义 CMS 时可以遵循的最佳实践是什么,我找不到可以通过 CMS 的示例数据库设计清楚地显示的示例。

如果有人能向我指出一个很好的资源,其中包含数据库设计示例以及 asp.net Web 表单中的源代码,我将不胜感激,我可以灵活地使用数据库。

如果所有的菜单都存储在一张表中,则很容易设计 MegaMenu。在某些情况下,我必须从不同的表构建超级菜单让我们以以下主菜单为例

主页 | 文章 | 新闻 | 关于我们 | 联系我们

我想以这样的方式构建我的菜单,以便它可以从不同的表中读取菜单详细信息,例如

文章菜单:带图片的前 3 篇文章

新闻菜单:带图片的前 3 名新闻

联系我们菜单:应在两列或三列中显示指向美国、加拿大、德国、印度、英国等不同国家办事处的链接。

到目前为止,我还没有找到任何有用的示例可以用作学习目的,它显示了具有不同功能的 CMS 的基本架构设计,例如新闻、产品(例如性质不同)

我试图研究实际上将页面/帖子存储在一个表中的wordpress,并分配值类型帖子或页面以区分但在某些情况下,我们需要有不同的东西,比如需要存储在不同表中的产品。我很困惑如何创建一个超级菜单系统,它可以从不同的表中读取菜单信息,而不是创建一个单独的菜单表,如果一个有数百种产品,这可能会让人头疼。在这种方法中,我们必须更新产品相关表以及菜单表,这不是一个好的设计方法。

4

2 回答 2

2

我建议您采用单表方法:

看看我刚刚在 dbpatterns 上制作的这个:http: //dbpatterns.com/show//509bbcae89cbad253a2f5717/

所以现在内容明智

Example

ID: 1
Title: Article
item_link: home.aspx
parent: null
order: 1

ID: 2
Title: Article
item_link: page.aspx
parent: null
order: 2

ID: 3
Title: Article Number 1
item_link: page1.aspx
parent: 1 (ID of Article)
order: 1


ID: 4
Title: Article Number 2
item_link: page2.aspx
parent: 2 (ID of Article)
order: 2

ID: 5
Title: Article Number 3
item_link: page3.aspx
parent: 2 (ID of Article)
order: 3


ID: 6
Title: News
item_link: News.aspx
parent: null
order: 3

ID: 7
Title: News Number 1
item_link: News1.aspx
parent: 6 (ID of News)
order: 1


ID: 8
Title: News Number 2
item_link: News2.aspx
parent: 6 (ID of News)
order: 2

ID: 9
Title: News Number 3
item_link: News3.aspx
parent: 6 (ID of News)
order: 3

因此,当您构建菜单代码端时,您将获得所有项目

循环遍历没有父项的每个项目以构建顶层,然后遍历具有父项的每个项目,添加到父项,并按顺序对它们进行排序(注意顺序是每个子菜单)。

订购注意事项:顶级物品去 1,2,3,4 等等...

子菜单项也有 1,2,3,但对于它们所在的菜单项。

于 2012-11-08T13:29:04.957 回答
2

您的问题非常非常模糊 - 但如果您想要.Net CMS 中的大型菜单,您可以查看带有 LocalGov 扩展名的 Umbraco (http://kevin.thejumps.co.uk/2011/umbraco-localgov/ )。即使你不使用它,你也可以看到其他人是如何实现这个功能的。

于 2012-11-08T13:39:06.920 回答