我正在开发一个模块化的 CMS,并且一直在思考内容架构的问题。我需要一个灵活的系统,可以方便地创建不同类型的内容。每种内容类型都有一个模块(或其他模块中的方法)来处理它。该模块处理创建、操作和显示内容(视图负责查看内容,而模块提供信息)。每种内容类型都有自己的表格,并不知道其他内容类型的存在。内容和内容类型是存储内容信息的表格。
这是一个内容类型表格的示例。
那么这一切是如何实现的呢?
假设我们访问以下网址:http://www.website.org/en/about-us
我认为我想出了一个非常灵活的系统,但是由于我不是经验丰富的程序员(我17岁),所以我不太确定,所以我想问一下您对这个概念有何看法?
Contents
---------------------------------------------------------------------------------------
id slug content_type_id in_table_id language_id uid parent_id
1 about-us 1 1 1 83j8je29 0
2 o-nama 1 2 2 83j8je29 0
3 first-page 1 3 1 12j83j28 0
4 prva-strana 1 4 2 12j83j28 0
5 news 2 1 1 mSk2919k 0
6 vijesti 2 2 2 mSk2919k 0
7 breaking-title 3 1 1 B8392mkA 5
8 vazna-vijest 3 2 2 B8392mkA 6
Content_types
------------------
id content_type
1 page
2 category
3 article
内容表包含内容的slug,内容类型,该类型内容表中内容的ID,语言ID,uid(唯一标识内容,可以轻松配对多语言内容)和父ID。
这是语言表...
Languages
---------------------------
id friendly_name sid
1 english eng
2 hrvatski cro
这是一个内容类型表格的示例。
Pages
---------------------------------------------------------------
id title content author_id
1 About Us This is a page about us blah blah 5
2 O nama Ovo je stranica o nama 5
3 First Page Content 2
4 Prva strana Sadržaj 3
那么这一切是如何实现的呢?
假设我们访问以下网址:http://www.website.org/en/about-us
- 确定语言(英文,en)并查找其ID(为1)
- 确定slug(about-us)
- 选择语言ID为1且slug为“about-us”的内容
- 确定内容类型和in_table_id
- 调用负责打开(处理)该类型内容的模块
- 模块已加载。 现在找到具有ID 1 的页面并显示它。
- 确定语言(英文,en)并查找其ID(为1)
- 确定slug(news)
- 我们有两个slug(breaking-title)
- 现在查找父级为“news”的“breaking-title”slug的内容
- 调用负责打开(处理)该类型内容的模块
- 模块已加载。 现在找到具有ID 1 的文章并显示它。
我认为我想出了一个非常灵活的系统,但是由于我不是经验丰富的程序员(我17岁),所以我不太确定,所以我想问一下您对这个概念有何看法?