存储长文本

时间:2009-09-22 12:57:10

标签: database ms-access longtext

在数据库中存储长文本(文章)的最佳方法是什么?它不需要可搜索。

我想让ppl阅读我书店每本书的第一章。将它转储到数据库字段使得使用css设置段落很困难。

编辑:访问数据库

10 个答案:

答案 0 :(得分:3)

如果是sql server 2005 USE VARCHAR(MAX)

EDIT,

看来他是saif访问,

所以我会选择备忘录

  

最多63,999个字符。 (如果备忘录   字段是通过DAO和。操纵的   只有文字和数字[不是二进制的   数据]将存储在其中,然后是   备注字段的大小受限于   数据库的大小。)

或OLE对象(如果可以)

  

对象(例如Microsoft Excel   电子表格,一个Microsoft Word   文档,图形,声音或其他   二进制数据)链接(OLE / DDE链接:A   OLE对象和。之间的连接   它的OLE服务器,或动态之间   数据交换(DDE)源文档   和目的地文件。)或   嵌入式(嵌入式:插入副本   来自另一个的OLE对象   应用。对象的来源,   称为OLE服务器,可以是任何   支持对象的应用程序   链接和嵌入。改变了   嵌入对象没有反映出来   原始对象。)在微软   访问表。

     

最高1千兆字节(受限于可用   磁盘空间)

答案 1 :(得分:1)

我不知道你正在使用哪个数据库,但如果文本不需要搜索,那么你可以简单地存储HTML格式的文本(例如,来自FCKEditor的值或像这样的组件)。如果您还需要可搜索性,那么您可以将HTML和纯文本存储在两个单独的字段中。

如果您在其他数据库上使用MS SQL Server 2008或任何等效数据类型,则字段可以是nvarchar(MAX)。

编辑: 似乎你正在使用Access,所以去备忘录数据类型! 如果您决定存储HTML,请考虑仅存储通用标记(div,p)来划分文本,而不是以后应用CSS格式,将存储的文本包装在另一个div中,为儿童元素指定格式化类。

答案 2 :(得分:1)

你有几个选择:

  • 将它存储为一个没有格式的长单字符串,在屏幕上看起来很平淡。

  • 将其存储为带有嵌入式html和css的长单字符串,如果您想让您的网站具有不同的外观,这将是一个糟糕的选择。

  • 对其进行规范化,以便您拥有存储书籍,章节,段落等的表格,然后在将文本加载到应用程序时对文本进行格式化和样式化。

答案 3 :(得分:1)

长文本(CLOB / TEXT / VARCHAR(MAX))和长数据(BLOB / IMAGE / VARBINARY(MAX))之间的主要区别在于前者受字符集转换的影响而前者不受影响。

如果您需要在数据库端进行字符集转换,请使用CLOB和类似的。

如果您总是希望在您按照字节到字节(与字符到字符相对)的方式检索数据,请使用BLOB等。

答案 4 :(得分:1)

我不会将任何文档存储在数据库中,而是将数据存储在文件系统中的文件中,数据库中唯一的东西就是指向数据文件的指针。

您不会在问题中提供任何有关将文档存储在数据库中的任何需要的详细信息。

在极少数情况下这是有利的。

答案 5 :(得分:0)

使用CLOB

答案 6 :(得分:0)

对于SQL Server

SQL Server 2000的

TEXT / NTEXT

SQL Server 2005及更高版本的

VARCHAR(MAX) / NVARCHAR(MAX)

答案 7 :(得分:0)

我建议将第一章存储为pdf文件。这是安全的,并允许良好的格式。然后根据您的产品使用blob,clob,varchar或文本字段(请参阅其他答案)。

或者你可以使用图像并查看amazone的“look inside”之类的内容。它可以使用相同的db技术。

或者你可以使用像标记这样的东西。

我个人不喜欢将html放在我的数据库中。即使它仅用于输出。太容易放入一些JavaScript。但也许我太谨慎了。

答案 8 :(得分:0)

以下仅适用于Jet 4.0,是Access2000到Access2003时代的Access数据库引擎的版本:

我不会将任何文档存储在数据库中,而是将数据存储在文件系统中的文件中,数据库中唯一的东西就是指向数据文件的指针。

您不会在问题中提供任何有关将文档存储在数据库中的任何需要的详细信息。

在极少数情况下这是有利的。

如果您正在使用ACE,作为Access2007时代的Access数据库引擎的版本,附件数据类型将是一个选项,但我真的不知道它是如何工作的,我从来没有使用它所以我不能推荐它,也不能说这个目的是好还是坏。我也对Access数据库引擎主要版本的第一个版本中的新数据类型保持警惕。我只记得Jet 4引入时字节和十进制字段的所有问题,并且不想承诺可能永远不能正常工作的东西。引入了ACCDB格式的附件类型以实现Sharepoint兼容性,并且外部依赖性使我暂停。如果Sharepoint改变它的工作方式,ACCEDB数据类型有一天会改变吗?我不确定我是否愿意冒这个风险。

答案 9 :(得分:-1)

将它放在一个TEXT字段中,并将其与<p>一起放置,这样您就可以设置段落样式。

因为它不需要搜索,所以不会影响你的sql性能。