这个问题是参考我的previous question。根据我的要求,我对数据库做了一些修改,但是我不确定如何创建子菜单(需要从其他表创建,而不是主表pg_Pages
表。我的问题是我可以很容易地为“关于我们”和“多媒体”创建子菜单,因为我将这些页面存储在pg_Pages
表中,但是我需要为News
创建子菜单从News Category
表和它们magazine
表链接到正确的页面处理程序。&问题。网站数据库设计(CMS)数据库驱动菜单的考虑和建议
菜单例个
样本数据
pg_Pages Table
PageID PageName LangID PagePositionNo PageURL PageInheritance
1 Home 1 10 Default.aspx 0
2 About Us 1 20 Page.aspx 0
3 PageOne 1 10 Page.aspx 2
4 PageTwo 1 20 Page.aspx 2
5 Multimedia 1 30 Page.aspx 0
6 Video 1 10 Videos.aspx 5
7 PhotoGallery 1 20 Gallery.aspx 5
8 News 1 40 News.aspx 0
9 Issues 1 50 # 0
10 Publication 1 60 Page.aspx 0
11 SpanishHome 2 10 Default.aspx 0
12 SpanisAbout Us 2 20 Page.aspx 0
------------------------------------------------------------------------------
Magazine
MagazineID MagazineIssueCode LangID MagazineTitle MagazineLiveIssue(CurrentIssue)
1 101 1 Mag Title 0
2 102 1 Mag Title 1
3 101 2 SpanisgMag Title 0
4 102 2 Mag Title 1
------------------------------------------------------------------------------
art_Article Table
ArticleID ArticleTitle ArticleCatID MagazineID Language TYPE
1 Article one 100 1 1 Artile
2 Article two 100 1 1 Artile
3 Article three 200 1 1 Artile
4 Article four 300 1 1 Artile
5 Article Five 100 2 1 Artile
6 EditorMessage 300 2 1 EditorMessage
7 Article seven 200 2 2 Somthing
------------------------------------------------------------------------------
我希望我的设计有足够的灵活性来读取不同的表菜单。我应该采取哪些方法/改变来正确完成它,而不是为所有菜单创建单独的表格将它们链接到页面?请为此场景建议最佳方法。
我希望系统非常灵活,并直接从数据库中读取菜单信息,而不是根据IssueID
或某个其他ID创建静态链接和触发查询。
News Menu
基本上显示文章的类别,进一步我需要一个查询,它只会显示News
菜单中的类别,该菜单包含针对该特定问题的文章。假设如果问题102没有任何与文化相关的文章那么文化子菜单不应该显示在新闻下。
我不会试图在一个数据模型来模拟一个 “菜单”。你唯一能做的就是显示菜单。如果你只是序列化菜单对象(例如使用json.net)并存储它们,你会让生活变得更容易。 –
@Filip,你的意思是我应该创建一个单独的'菜单'表,字段类似于MenuID,MenuName,PageID等等。如果我错了,请给我一个例子 – Learning
我会在你的web应用程序中创建一个文件menu.json并在那里转储整个结构。 –