xml – 如何在数据库中存储文章或其他大文本

我目前正在设计一个数据库驱动的网站。主要原因是为了学习目的,但我不会说谎,有少量的虚荣!

虽然我相信我的数据库设计是相当不错,到目前为止,我仍然不完全确定存储文章或其他大文本的最佳方式。我知道大多数DBMS具有TEXT数据类型或等效,并且可以容纳大量的文本。但是,将整篇文章存储为一个长字符串会导致不愉快的阅读,因此需要格式化。

我是否将文章文本与所有HTML或BBcode标记一起存储?或者最好只是在HTML或XML文档中创建页面,并将该文件的路径存储在DB中?

我非常喜欢将文章存储为XML文档的想法,因为我可以轻松地用自定义标记标记文章,并使用PHP的XML和XSLT函数将XML转换为HTML [或其他任何格式]。它还允许作者决定何时创建线/分页符。这种方法当然需要额外的编码[我不害怕],但它确实存在一个问题,使文章可搜索。

例如,我知道MySQL具有用于在文本字段中保存的字符串中搜索特定术语/短语的SQL语法。如果我要将文本存储在单独的文件中,我如何使这些文章可搜索?

有很多我在这里写这么简单的问题,所以我会打破它:

1:有一种“最好的”方式来存储大量的格式化文本直接在数据库或
2:最好是以HTML / XML /无论文档的形式保存该文本的路径。

如果2,有一个优雅的方式使文本可搜索?

感谢您的时间 :)

像亚历克斯建议的,将一切存储在一个大文本字段。对于搜索,不要敲击数据库,使用 Lucenehtdig来创建输出的索引。这种方式搜索非常快。副作用是你让搜索更多的搜索引擎友好;你把你的关键字字段(如反斜杠建议),并粘贴在meta-keywords属性。

编辑

除非你只是搜索关键字,让数据库做搜索将是非常慢的(曾经搜索论坛,它需要永远?)。数据库没有办法索引a

select.. where FULLTEXTFIELD like '%cookies%'.

它是令人沮丧的寻找一篇文章,搜索不返回您正在寻找的结果,因为他们不在关键字字段! Htdig允许您有效地搜索文章的全文。您的搜索将立即回来,并且文章中的每个词条都可以完全搜索。将关键字放在元标记中会使搜索结果页上的这些字词更高。

另一个好处是模糊匹配。如果搜索“activate”,htdigg将匹配具有活动,激活,活动等(可配置)的页面。或者如果用户拼写一个单词,它仍然会匹配。您希望您的用户拥有Google的体验,而不是令人讨厌的。

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念