完美的新闻系统数据库该怎么设计?

mssqldb 2010-01-15 09:05:03
我设计了一个表
字段分别为
编号 栏目1 栏目2 栏目3 栏目4 文章标题 文章内容
等做出来系统后发现,这样在管理文章的时候,还得为栏目对应ID和名称,在程序里转换,不灵活,想加栏目的话还得改程序,网上说
要为每个级别栏目设计一个表
栏目1表 栏目2表 栏目3表 栏目4表 文章表

这样应该很完美了,我很赞同,如果我想对每篇文章加评论,是不是增加评论表,还是整合到文章表呢?

现在我想知道一个完美的数据库该如何设计,省得下次再改了。最好以网易新浪等大网站的数据库作例。
...全文
461 44 打赏 收藏 转发到动态 举报
写回复
用AI写文章
44 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljsheng 2010-01-16
  • 打赏
  • 举报
回复
分类名称一个表

文章名称一个,

文章里的分类关联分类ID
mssqldb 2010-01-16
  • 打赏
  • 举报
回复
[Quote=引用 38 楼 annjoy303 的回复:]
楼主留下邮箱,我发个设计给你参考下!
[/Quote]mypc163@126.com
kenzi_just 2010-01-16
  • 打赏
  • 举报
回复
继续看争论
yuxh81 2010-01-16
  • 打赏
  • 举报
回复
帮顶,顺便学习!
求知也无涯 2010-01-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 randomfeel 的回复:]
楼主是在搞笑吗....

栏目1表 栏目2表 栏目3表 栏目4表 文章表

这样应该很完美了

那我要再增添一个栏目时,你不还得改程序,改数据库??

对文章加评论,当然要评论表

栏目和文章是1对多的关系,文章和评论是1对多的关系

没有完美的设计。
[/Quote]

说得好!
mssqldb 2010-01-15
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 khjian 的回复:]
找个CMS看看吧
[/Quote]网奇 动易 创力 哪个好?据说国内CMS价格都很高,我还正想找个CMS学习学习呢。

同时,问大家每篇文章都要经过一定的审核流程,比如有的文章二审制,有的文章三审制,有的文章四审制……,这个流程在数据库上怎么设计,程序上怎么该怎么做?我做的时候每篇文章后面有个articlestate字段,审核后用程序更改字段值,这样不灵活,因为如果增加审核次数要改程序。
soita 2010-01-15
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 camperer 的回复:]
引用 20 楼 duwa789 的回复:
某次老总告诉我说,老猫啊,去把这个网站做成动态的吧。

同时指着别的网站的gif说:象这样,很动感很好看。


很强大,可以入选.net版雷人语录了。
[/Quote]

凸- -凸
khjian 2010-01-15
  • 打赏
  • 举报
回复
找个CMS看看吧
duwa789 2010-01-15
  • 打赏
  • 举报
回复
其实吧,你可以建立250个table,每个table有250个字段,按序编号,然后当你需要一个新字段的时候,在某个地方标注作用。
camperer 2010-01-15
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 duwa789 的回复:]
某次老总告诉我说,老猫啊,去把这个网站做成动态的吧。

同时指着别的网站的gif说:象这样,很动感很好看。
[/Quote]

很强大,可以入选.net版雷人语录了。
soita 2010-01-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 alifriend 的回复:]
在页面用矢量图写两个大大的“完美”,这样任何人看了,都会说“这是完美新闻系统”
[/Quote]

你这人说话真逗
mssqldb 2010-01-15
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 sp1234 的回复:]
设计没有什么“完美”,尤其是像数据库表设计这样低级的设计方面。

那些追求“完美的数据库设计”的人往往都是生产率超级地低的人,并且做成功的实际项目也可能接近为0。

随着千变万化的业务需求,只有高级别的设计才可能保持较好的稳定性和扩展性,底层的东西则会一遍遍重构。所以好的底层技术体现在哪里?体现在灵活扩展甚至快速(借助自动化工具而)重写,而是“固执”。
[/Quote]
后半句正在慢速理解
  • 打赏
  • 举报
回复
而是“固执” --> 而不是“固执”

所以你会看到很多结构适合第一个范例、第二个范例、第三个范例.....只有多了才变将新增的东西变成抽象的。
camperer 2010-01-15
  • 打赏
  • 举报
回复
19楼最后一句是:
第一级栏目的父id为空或者0
duwa789 2010-01-15
  • 打赏
  • 举报
回复
某次老总告诉我说,老猫啊,去把这个网站做成动态的吧。

同时指着别的网站的gif说:象这样,很动感很好看。
camperer 2010-01-15
  • 打赏
  • 举报
回复
我讲直白一点吧。
首先,1对多的关系肯定要分表,一张表无法表达。因此你的系统至少要分栏目表、文章表、评论表三张。

然后,栏目表的多级问题,你应该看到无论分多少级它们的本质是一样的,有同样的字段,因此一张表完全能够表达,至于它们的上下级对应关系,你应该给每个栏目一个父id字段,存放它的上级id,第一级栏目的id为空或者0
mssqldb 2010-01-15
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 xiezhongjun 的回复:]
我们公司官方网站的新闻系统是我写的,当时老程序员是这么建议我的,表结构分两个部分,一个模块表,用来存各个模块,一个新闻表用来存放新闻:
新闻模板表:[Sys_Module]
      包含: [Module_ID]
      ,[Parent_ID]
      ,[Module_Name]
      ,[Module_Desc]
      ,[Layer_Code]
      ,[Creator]
      ,[Create_Date]
      ,[OrderBy]

  新闻表:Sys_News 包含:
        [News_ID]
      ,[News_Category_ID]
      ,[News_Title]
      ,[News_Summary]
      ,[News_Content]
      ,[News_Url]
      ,[Author]
      ,[Target]
      ,[Creator]
      ,[News_Date]
      ,[News_Partner]
      ,[Create_Date]
      ,[IsTransfer]
      ,[IsValid]
      ,[Mender]
      ,[Modify_Date]
      ,[News_Logo]
      ,[News_Logo2]
      ,[News_Channel]
      ,[News_Target]
      ,[News_level]
      ,[Remark]
新闻类别表:Sys_News_Category
[News_Category_ID]
      ,[News_Category_Name]
      ,[News_Category_description]
      ,[News_Category_Priority]
      ,[News_Categoryl_Status]
      ,[Creator]
      ,[Create_Date]
      ,[Mendor]
      ,[Mender_Date]


[/Quote]
恍然大悟
duwa789 2010-01-15
  • 打赏
  • 举报
回复
一个允许只允许录入新闻标题,新闻内容的系统数据库只需要
Title nvarchar(max)
Context ntext
非常完美
  • 打赏
  • 举报
回复
设计没有什么“完美”,尤其是像数据库表设计这样低级的设计方面。

那些追求“完美的数据库设计”的人往往都是生产率超级地低的人,并且做成功的实际项目也可能接近为0。

随着千变万化的业务需求,只有高级别的设计才可能保持较好的稳定性和扩展性,底层的东西则会一遍遍重构。所以好的底层技术体现在哪里?体现在灵活扩展甚至快速(借助自动化工具而)重写,而是“固执”。
vip__888 2010-01-15
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 zhao38322684 的回复:]
引用 6 楼 alifriend 的回复:
在页面用矢量图写两个大大的“完美”,这样任何人看了,都会说“这是完美新闻系统”
真相帝
[/Quote]
完美的新闻系统
加载更多回复(24)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧