4

テーブルを動的に変更するアプリケーションがあります(スプレッドシートを考えてください)。次に、フォーム(テーブルが含まれている)を保存すると、変更されたテーブルを(ユーザーが変更して)html_Spreadhseetという名前のデータベース列に保存します。フォームデータ。現在、HTMLをプレーンテキスト形式で保存しており、基本的に文字をエスケープしています...

これは別のファイルとして保存できることを認識しています。ソーステーブル(html_workseeet)はすでに保存されています。しかし、データ処理の観点からは、変更されたhtmlテーブルを列に保存したり、列から保存したりする方が簡単です。これにより、ファイル管理戦略を考え出す必要がなくなります(これはどのフォルダーに存在するので、バックアップにフォルダーを含める必要があります。セキュリティの問題があります。ファイルに適用する必要がある、dbセキュリティをファイルシステムと同期する方法など)、これらの問題を最小限に抑えるために、データベース列に...の部分のみを保存しています。

私の質問は、HTMLをgzipで圧縮するか、JSONまたはその他の形式を使用して、データベース列からHTMLを簡単に保存および取得する必要があるかどうかです。HTMLコンテンツをデータベースに保存するためのベストプラクティスは何ですか?または、現在エスケープされたテキスト列として保存しますか?

4

3 に答える 3

1

あなたがやろうとしているのが再表示のために HTML を保存することである場合、それをそのまま保存してから、ストアド プロシージャを介して取得し、必要なときに再表示するだけの何が問題なのですか?

たとえば、ThickBox ページのリストから、または選択オプションから、ある種の ID を選択できる HTML ページがあるとします。

通常、この種の状況では、$Ajax、場合によっては JSON を介して DB にクエリを実行するか、そうでない場合があります。

次に、$Ajax 呼び出しに返された結果が結果データになります。

次に、SpreadSheet を保持する Div を DB SpreadSheet に置き換えます。

したがって、元の質問への回答として、SpreadSheet をある種の ID と共に保存し、それを Div の HTML として保存することができます。

取得したら、Div HTML を保存したものに置き換えるだけです。

于 2012-05-01T16:20:28.573 に答える
0

おそらく、弾丸を噛んでテーブルを解析する必要があります(おそらく、HTMLパーサーを使用して)。そうしないと、ユーザーが有害なJavaScriptをテーブルデータに保存するリスクがあります。(これは、セルの内容も解析する必要があることを意味します)。データは引き続きblob(圧縮されたCSVまたはJSON)として保存できますが、損傷がないことを確認する必要があります。

于 2010-06-15T21:20:26.150 に答える
0

HTMLのサイズによって異なります。圧縮後、バイナリ BLOB として保存できます。ほとんどの場合、問題を引き起こす可能性のある SQL 文字をエスケープした直後にデータを保存するのが最善です。
何度も尋ねられたように、モデルではなくビューを保存するのはなぜですか?

于 2010-06-15T18:09:20.753 に答える