I need to design a CMS based website using asp.net web form (c#) and MS SQL Server as backend database for a magazine website which will have monthly issue.
I am finding it hard to design a database that can help me fetch menus from different table for example as show in image below
Example of Database
Sample Data
MagazinePages 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 Table
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
------------------------------------------------------------------------------
News Table
NewsID NewsTitle NewsCatID MagazineID Language
1 News one 100 1 1
2 News two 100 1 1
3 news three 200 1 1
4 News four 300 1 1
5 News Five 100 2 1
6 News Six 300 2 1
7 News seven 200 2 2
Problem with above approach is that I can create sub menus only if all the records are in MagazinePages based on above example I can create sub menus for “About Us” & Multimedia how can i design my database so that i can pull data from different table such as news by category (Politics, Culture…) & Issue from Magazine Table (Issue 101, Issue 102, Issue 103….)
I am planning to use ASP Menu control for this which may not be very flexible, since i will have over 100 issue of magazine how or which multi-column menu i can use with asp.net
My database may have many flow, I would appreciate help in this regard so that i can use this database for this CMS system . Please feel free to ask question if any regarding this.
Best Answer
To me this sounds like you are trying to make your database design match the menus in the UI layout. This might work until the UI changes. Then will you change the database structure?
It might be better off to create proper tables based on the data itself, and then design some views that are more accessible by the UI.