我有一个正在设计的新闻系统,一开始看起来很简单,但随着我推进计划的模式,我遇到了问题......显然我还没有考虑清楚。任何人都可以帮忙吗?

系统要求从数据库中抓取最新的20篇新闻文章。这种方式就像博客一样。每篇文章都可以有子文章(通常大约 3 个),可以从父文章访问。子文章仅在父文章可见时才可见——它们不会在其他地方使用。

客户端需要能够隐藏/显示新闻文章(简单),但如果他们愿意(更难),也可以更改它们的顺序。

我最初将子文章存储在一个单独的表中,但后来我意识到这些字段本质上是相同的:标题、副本、图像。那么为什么不把它们都放在一张大 table 上呢?

现在我在订购方面遇到了其他问题。今天是周五晚上,我的头好痛!

任何人都可以提供建议吗?

谢谢。

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

articleID *
headline
copy
imageURL
visible
pageOrder

subArticleID *
articleID
headline
copy
imageURL
visible
pageNumber
pageOrder

这会起作用吗?我将如何让用户更改订单?对我来说,这似乎是错误的做法,所以我把它扔掉了。

最佳答案



因为引用完整性是不一样的。

也就是说,当然,如果您想将树限制为恰好 2 个级别。如果您想要更通用的数据模型(即使这意味着以后在应用程序级别对其进行限制),那么继续制作一个通用树。

这可能看起来像这样:

请注意 PARENT_ARTICLE_ID 和 ORDER 都是如何为 NULL 的(因此您可以表示一个根)以及它们如何构成上图中 U1 表示的 UNIQUE 约束(因此在同一父项下,没有两篇文章可以模糊地排序)。

关于php - 新闻系统的数据库架构,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10657774/

10-12 00:14
查看更多