2010-06-15 102 views
4

我有一个应用程序,动态地修改表,想想电子表格),然后在保存表格(这是表格的一部分),我存储了改变的表格(用户修改)在一个名为html_Spreadhseet的数据库列中,以及其余的表单数据。现在我只是存储在纯文本格式的HTML与基本转义的字符...最佳实践如何在数据库列中存储HTML

我知道这可以存储为一个单独的文件,源表(html_workseeet)已经是。但是从数据处理的角度来看,更容易将更改的html表保存到列中或从列中保存,以避免必须提出文件管理策略(该文件夹将存在于此目录中,现在必须包括备份中的文件夹,现在的安全问题需要应用于文件,如何同步数据库安全性与文件系统等),所以为了最大限度地减少这些问题,我只将......部分存储在数据库列中。

我的问题是我应该gzip的HTML,也许使用JSON或其他格式轻松存储和从数据库列中检索HTML,什么是存储在数据库中的HTML内容的最佳做法?或者只是将它存储为我目前作为转义文本列?

回答

0

这取决于HTML的大小。压缩后可以将它存储为二进制BLOB。大多数情况下,最好是在转义可能导致问题的SQL字符后直接存储数据。
正如很多时候问你为什么要存储视图而不是模型?

+0

这个HTML看起来像这样。 <表类= '电子表格' 边界= '1' 的id = 'myTable的'> ​​材料 0 ​​税 ​​0.00 ​​GBP 0。66 它不是传统意义上的纯粹的看法,这里的目标是保存用户输入的数据。更像谷歌文档(电子表格)从这张表中抽象出来的数据会增加它的复杂性和应用程序的冗长性,因为这些单元格的映射在语法上是以运行时间方式完成的。 – user299319 2010-06-15 18:15:27

0

您可能应该找到子弹并解析表格(也许使用HTML解析器),否则可能会导致用户在表格数据中存储破坏性JavaScript。 (这意味着单元格内容也应该被解析)。数据仍然可以存储为blob(可能是压缩的CSV或JSON),但您需要确保它不会造成损害。

1

如果你要做的是保存用于重新显示的HTML,保存它是什么错误,然后通过存储过程检索它,并在需要时重新显示它?假设你有一个HTML页面,它可以从列表中选择某种类型的ID,可以在ThickBox页面上,也可以从选择选项中选择。

通常对于这种情况,您可能会通过$ Ajax或许JSon查询数据库。

然后发送回$ Ajax调用的结果将是您的结果数据。

然后,您用Data SpreadSheet替换保存SpreadSheet的Div。

因此,在回答您的原始问题时,您可以将SpreadSheet存储为某种类型的ID,并将其存储为Div的HTML。

检索时,您只需将Div HTML替换为存储的内容即可。