我有一个我正在设计的新闻系统,起初看起来很简单,但是当我推进我计划好的架构时,我遇到了问题……很明显我没想过.有人可以帮忙吗?
系统要求从数据库中获取最新的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约束(因此在同一父项下不能模糊地排序两篇文章).