杂志网站的数据库设计,灵活的水平菜单

Lea*_*ing 8 c# sql-server asp.net database-design aspmenu-control

我需要设计一个基于CMS的网站,使用asp.net网页表格(c#)和MS SQL Server作为杂志网站的后端数据库,该网站每周都有问题.

样本数据

MagazinePages Table
PageID  PageName    LangID  PagePositionNo  PageURL     PageInheritance //PageID 
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           Media           1         30        Page.aspx       0
6           Video       1         10        Videos.aspx     5
8           News        1         40        News.aspx        0
9           Archive     1         50        #               0
10          Publication 1         60        Page.aspx       0
11          SpanishHome 2         10        Default.aspx        0
12          SpanisAboutUs 2       20        Page.aspx   0
------------------------------------------------------------------------------
Magazine
MagazineID  MagazineIssueCode   LangID  MagazineTitle   MagazineLiveIssue(CurrentIssue)
1       1           1   Mag Title       0
2       2           1   Mag Title       1
3       1           2   SpanisgMag Title    0
4       2           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
------------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

上述方法的问题是,只有当所有记录都在基于上面的例子的MagazinePages中我才能创建子菜单我可以为"关于我们"和多媒体创建子菜单如何设计我的数据库以便我可以从不同的表中提取数据例如按类别分类的新闻(政治,文化......)和杂志表中的问题(第101期,第102期,第103期......)

我打算使用ASP Menu控件,这可能不是很灵活,因为我将有超过100期的杂志怎么或我可以用asp.net的多列菜单

我的数据库可能有很多流程,我很感激这方面的帮助,以便我可以将此数据库用于此CMS系统.如果有任何疑问,请随时提出问题.

补充:如果我需要从MagazinePagesTable中提取所有菜单名称,那么很容易,但我被要求有一个菜单结构,如示例所示.这个问题是我可以生成菜单AboutUsMultimediaMagazinePages表,但我没有像政治,经济,...问题101,102,103的任何页面.在此表作为信息存储在不同的表像News Category在新闻表格中的表格和问题Magazine.我宁愿改变我的表格设计,也可以灵活地从单独的表格中读取菜单信息,但我不确定如何

新闻表未显示在此架构中.

我所做的是我为CMS页面创建了ps_Pages表,如Home,Aboutus,Contact,MediaCentre .....

我在art_Article表格中存储与杂志相关的页面(实际上是具有不同类别或文章,政治,体育,人...等的文章)

Rya*_*ugh 4

为什么不用一个页面来处理内容呢?

只需致电Page.aspx?Issue=4&Page=4

然后在您的代码中,您知道这是第 4 期,并且他们想要第 4 页,然后您可以在 Page.aspx(.vb 或 .cs)中包含代码,该代码会对其进行翻译,然后决定布局。

所以例如

Page.aspx?Issue=4&Style=Article&Content=5
Run Code Online (Sandbox Code Playgroud)

因此,在代码中,您可以继续,好吧,这是第 4 期,获取第 4 期的数据库条目,好吧,他们想要第 4 期的内容 ID 5,然后放入文章的样式。

这意味着您不必在数据库类型中添加额外的页面,您只需根据需要添加内容即可,生成用于访问内容的 URL 的项目只需显示所有内容。