php – 新闻系统的数据库模式

我有一个我正在设计的新闻系统,起初看起来很简单,但是当我推进我计划好的架构时,我遇到了问题……很明显我没想过.有人可以帮忙吗?

系统要求从数据库获取最新的20篇新闻文章.这样就像博客一样.每篇文章都可以包含可以从父文章访问的子文章(通常大约3个).只有在父文章可见时才能看到子文章 – 它们不会在其他地方使用.

客户需要能够隐藏/显示新闻文章(简单),但如果他们愿意(更难),也需要改变他们的订单.

我最初将子文章存储在一个单独的表中,但后来我意识到这些字段基本相同:标题,复制,图像.那么为什么不把它们全部放在一张大桌子上呢?

现在我在订购时遇到了其他问题.这是星期五晚上,我的头疼!

有人可以提供建议吗?

谢谢.

更新:人们要求查看我的“现有”架构:

articleID *   
headline  
copy
imageURL
visible
pageOrder

subArticleID *
articleID 
headline
copy
imageURL
visible
pageNumber
pageOrder

这会有用吗?我如何让用户更改订单?这对我来说似乎是错误的方式,所以我把它扔掉了.

解决方法

I initially stored the sub-articles in a separate table,but then I realised that the fields were essentially the same: Headline,copy,Image. So why not just put them all in one big table?

因为参照完整性不一样.

当然,如果你想将树限制在2个级别.如果您想要更通用的数据模型(即使这意味着稍后在应用程序级别限制它),那么继续创建一般树.

这可能看起来像这样:

请注意PARENT_ARTICLE_ID和ORDER是否都是NULL(因此您可以表示根)以及两者如何组成上图中由U1表示的UNIQUE约束(因此在同一父项下不能模糊地排序两篇文章).

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...