我正在为报纸创建一个网站。它的所有文章都有一个部分,大多数文章直接在其部分下:/section_name/article_name
。但是,有些文章并非直接属于他们的部门 - 它们属于一个小节:/section_name/subsection_name/article_name/
。我如何构建这个数据库,而不是所有文章都在一个小节下?
我最初的想法是ONE Section has MANY Subsections has MANY Articles
。但是接下来我将如何处理"可选的小节"问题?
一种解决方案是建立两种关系:ONE Subsection has MANY Articles
和ONE Section has MANY Articles
。这样,文章既可以是部分也可以是子部分。但是,这对我来说似乎并不直观; Subsection
根本与Section
无关?还有其他解决方案吗?
另一个注意事项:请求文章使用以下参数:/:section_name(/:subsection_name)/:article_name
,其中冒号标记参数,括号标记可选参数。
答案 0 :(得分:0)
编辑: 在第三种方法中,section / subsection表将有一个外键。如果不为null,则该外键标识父节。此结构可以表示任何宽度或深度的子部分树,并且文章可以与该树中的任何部分相关联。对于您概述的简单场景,这种类型的结构可能过度,但足够灵活,可以适应概念模型的某些扩展,而无需更改物理结构。