xml – 如何在数据库中存储文章或其他大文本
我目前正在设计一个数据库驱动的网站。主要原因是为了学习目的,但我不会说谎,有少量的虚荣!
虽然我相信我的数据库设计是相当不错,到目前为止,我仍然不完全确定存储文章或其他大文本的最佳方式。我知道大多数DBMS具有TEXT数据类型或等效,并且可以容纳大量的文本。但是,将整篇文章存储为一个长字符串会导致不愉快的阅读,因此需要格式化。 我是否将文章文本与所有HTML或BBcode标记一起存储?或者最好只是在HTML或XML文档中创建页面,并将该文件的路径存储在DB中? 我非常喜欢将文章存储为XML文档的想法,因为我可以轻松地用自定义标记标记文章,并使用PHP的XML和XSLT函数将XML转换为HTML [或其他任何格式]。它还允许作者决定何时创建线/分页符。这种方法当然需要额外的编码[我不害怕],但它确实存在一个问题,使文章可搜索。 例如,我知道MySQL具有用于在文本字段中保存的字符串中搜索特定术语/短语的SQL语法。如果我要将文本存储在单独的文件中,我如何使这些文章可搜索? 有很多我在这里写这么简单的问题,所以我会打破它: 1:有一种“最好的”方式来存储大量的格式化文本直接在数据库或 如果2,有一个优雅的方式使文本可搜索? 感谢您的时间 :)
像亚历克斯建议的,将一切存储在一个大文本字段。对于搜索,不要敲击数据库,使用
Lucene或
htdig来创建输出的索引。这种方式搜索非常快。副作用是你让搜索更多的搜索引擎友好;你把你的关键字字段(如反斜杠建议),并粘贴在meta-keywords属性。
编辑 除非你只是搜索关键字,让数据库做搜索将是非常慢的(曾经搜索论坛,它需要永远?)。数据库没有办法索引a select.. where FULLTEXTFIELD like '%cookies%'. 它是令人沮丧的寻找一篇文章,搜索不返回您正在寻找的结果,因为他们不在关键字字段! Htdig允许您有效地搜索文章的全文。您的搜索将立即回来,并且文章中的每个词条都可以完全搜索。将关键字放在元标记中会使搜索结果页上的这些字词更高。 另一个好处是模糊匹配。如果搜索“activate”,htdigg将匹配具有活动,激活,活动等(可配置)的页面。或者如果用户拼写一个单词,它仍然会匹配。您希望您的用户拥有Google的体验,而不是令人讨厌的。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |