2013-03-26 57 views
2

我正在构建将存储文章的自定义CMS系统。自定义CMS - 存储内容

在db中存储文章的正确方法是什么?鉴于一篇文章可能由单个段落或任意数量的段落组成,并且可能包含图像,将每个段落存储在数据库的不同字段似乎不切实际。

我已经看过Wordpress如何存储帖子,它似乎将原始HTML包含在单个字段`post_content'中。这是一种被接受的方法吗?我用这种方法看到的缺点是,对于每篇文章,还会存储任何html标记。如果我只存储了原始文本,则显示文章的动态页面只会包含一次html标记。但那么如何去除paragrpahs和图像之间的差异呢?

有什么想法?

谢谢。

+0

可以将图像上传到服务器上的某个文件夹,然后在文本块中包含''标签。我想大多数地方做更大的文本字段使用某种文本blob,这对于我认为你会在这里找到的mysql:http://stackoverflow.com/a/332805/1618257 – 2013-03-26 22:21:57

回答

3

选择的字段将是一个BLOB类型(例如TEXT)。

然而,存储的数据是另一回事,而且实际上取决于您的实施。我已经在类似的系统工作,在过去存储的数据为:

  • XML - 这会转换和应用层转换成HTML自定义XML标记。此方法还意味着您可以使用XPATH查询来执行额外的数据查询。
  • WMD - 将数据存储为WMD意味着没有任何HTML标签可以帮助防范跨站点脚本攻击(XSS)
  • HTML这是最简单和快速的数据挖掘方式。如果您对输入进行清理,这将有助于XSS和其他您不想要的数据,但这会增加WMD可以从开始解决的更复杂的问题。

如果您正在寻找来自链接图像的某种分析数据,我会建议将图像URI存储在另一个表中,并链接到URL的主键ID。这意味着您可以检查并且不重复图片网址。如果您在域中上传和存储图像,图像URI也可以是ID。

+0

谢谢 - XML方法看起来很有趣。使用自定义XML标签...我会简单地使用内容等标签,然后编写一个脚本来从标签中提取内容? – user2056238 2013-03-27 00:35:31

+0

@ user2056238是的,如果您有标签,您可以根据需要提取数据和图像 - 甚至可以开始包含属性,例如,您可以使用数据库本身的XPATH执行直接查询。 – Steve 2013-03-27 11:30:31

+0

等等,然后我会将整个XML feed作为单个BLOB类型存储吗?然后我可以抓住它并使用XML阅读器类。我实际上是在今天将其用于另一个应用程序,但我可以看到如何将其轻松用于我的CMS。 – user2056238 2013-03-27 18:48:55