虽然我相信我的数据库设计是相当不错,到目前为止,我仍然不完全确定存储文章或其他大文本的最佳方式。我知道大多数DBMS具有TEXT数据类型或等效,并且可以容纳大量的文本。但是,将整篇文章存储为一个长字符串会导致不愉快的阅读,因此需要格式化。
我是否将文章文本与所有HTML或BBcode标记一起存储?或者最好只是在HTML或XML文档中创建页面,并将该文件的路径存储在DB中?
我非常喜欢将文章存储为XML文档的想法,因为我可以轻松地用自定义标记标记文章,并使用PHP的XML和XSLT函数将XML转换为HTML [或其他任何格式]。它还允许作者决定何时创建线/分页符。这种方法当然需要额外的编码[我不害怕],但它确实存在一个问题,使文章可搜索。
例如,我知道MysqL具有用于在文本字段中保存的字符串中搜索特定术语/短语的sql语法。如果我要将文本存储在单独的文件中,我如何使这些文章可搜索?
有很多我在这里写这么简单的问题,所以我会打破它:
1:有一种“最好的”方式来存储大量的格式化文本直接在数据库或
2:最好是以HTML / XML /无论文档的形式保存该文本的路径。
如果2,有一个优雅的方式使文本可搜索?
感谢您的时间 :)
编辑
除非你只是搜索关键字,让数据库做搜索将是非常慢的(曾经搜索论坛,它需要永远?)。数据库没有办法索引a
select.. where FULLTEXTFIELD like '%cookies%'.
它是令人沮丧的寻找一篇文章,搜索不返回您正在寻找的结果,因为他们不在关键字字段! Htdig允许您有效地搜索文章的全文。您的搜索将立即回来,并且文章中的每个词条都可以完全搜索。将关键字放在元标记中会使搜索结果页上的这些字词更高。
另一个好处是模糊匹配。如果搜索“activate”,htdigg将匹配具有活动,激活,活动等(可配置)的页面。或者如果用户拼写一个单词,它仍然会匹配。您希望您的用户拥有Google的体验,而不是令人讨厌的。