這個問題是參考我的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並在那裏轉儲整個結構。 –