長いテキスト(記事)をデータベースに保存するための最良の方法は何ですか?検索可能である必要はありません。
pplが私の書店にあるすべての本の最初の章を読めるようにしたい。データベースフィールドにダンプすると、cssを使用して段落のスタイルを設定するのが難しくなります。
編集:データベースにアクセス
SQL Server2005の場合USEVARCHAR(MAX)
編集、
彼はアクセスを言っているようです、
だから私はメモで行きます
最大63,999文字。(メモフィールドがDAOを介して操作され、テキストと数字(バイナリデータではない)のみが格納される場合、メモフィールドのサイズはデータベースのサイズによって制限されます。)
またはOLEオブジェクト(可能な場合)
リンクされたオブジェクト(Microsoft Excelスプレッドシート、Microsoft Wordドキュメント、グラフィックス、サウンド、その他のバイナリデータなど)(OLE / DDEリンク:OLEオブジェクトとそのOLEサーバー間、または動的データ交換(DDE)間の接続)ソースドキュメントと宛先ドキュメント。)toまたはembedded(埋め込み:別のアプリケーションからOLEオブジェクトのコピーを挿入します。OLEサーバーと呼ばれるオブジェクトのソースは、オブジェクトのリンクと埋め込みをサポートする任意のアプリケーションにすることができます。変更点埋め込まれたオブジェクトへの変換は、元のオブジェクトには反映されません。)MicrosoftAccessテーブル。
最大1ギガバイト(使用可能なディスク容量によって制限されます)
使用しているデータベースはわかりませんが、テキストを検索可能にする必要がない場合は、HTML形式のテキスト(たとえば、FCKEditorまたはこのようなコンポーネントからの値)を保存するだけです。検索機能も必要な場合は、両方のHTMLとプレーンテキストを2つの別々のフィールドに保存できます。
MS SQL Server 2008または他のデータベースで同等のデータ型を使用する場合、フィールドはnvarchar(MAX)にすることができます。
編集:Accessを使用しているようですので、メモデータ型を選択してください。HTMLを保存する場合は、テキストを分割するために汎用マークアップ(div、p)のみを保存することを検討してください。後で、CSS書式を適用して、格納されたテキストを子要素の書式クラスを指定する別のdiv内にラップします。
いくつかのオプションがあります:
書式設定なしの長い単一の文字列として保存します。これは、画面上では当たり障りのないように見えます。
htmlとcssが埋め込まれた長い単一の文字列として保存します。これは、サイトのルック/フィールを変えたい場合にはお勧めできません。
正規化して、本、章、段落などを格納するテーブルを作成します。次に、アプリケーションにロードするときにテキストのフォーマットとスタイルを設定できます。
CLOB / TEXT / VARCHAR(MAX)
長いテキスト( )と長いデータ( )の主な違いBLOB / IMAGE / VARBINARY(MAX)
は、前者は文字セット変換の対象になりますが、前者はそうではないことです。
データベース側で文字セット変換を行う必要がある場合は、などを使用CLOB
してください。
データを作成したときに常にデータを取得したい場合は、バイトごと(文字ごとではなく)、を使用BLOB
します。
データベースにドキュメントを保存することはありませんが、ファイルシステム内のファイルにデータを保存します。データベースにあるのは、データファイルへのポインターだけです。
データベース自体にドキュメントを保存する必要があることを示唆するような詳細は、質問に入力しないでください。
そして、それが有利な状況はほとんどありません。
CLOBを使用します。
SQLServerの場合
TEXT
/ NTEXT
SQLServer2000の場合
VARCHAR(MAX)
/ NVARCHAR(MAX)
SQLServer2005以降の場合
最初の章をpdfファイルとして保存することを提案します。これは安全であり、適切なフォーマットが可能です。次に、製品に応じてblob、clob、varchar、またはテキストフィールドを使用します(他の回答を参照してください)。
または、画像を使用して、amazoneの「中を見る」のようなものを調べることもできます。同じdbテクニックで動作します。
または、マークアップなどを使用することもできます。
私は個人的にhtmlをデータベースに入れるのが好きではありません。出力専用でも。JavaScriptを入れるのは簡単すぎます。しかし、多分私はあまりにも用心深いです。
以下は、Access2000からAccess2003までの時代のAccessDatabaseEngineのバージョンであるJet4.0にのみ適用されます。
データベースにドキュメントを保存することはありませんが、ファイルシステム内のファイルにデータを保存します。データベースにあるのは、データファイルへのポインターだけです。
データベース自体にドキュメントを保存する必要があることを示唆するような詳細は、質問に入力しないでください。
そして、それが有利な状況はほとんどありません。
Access2007時代のAccessDatabaseEngineのバージョンであるACEを使用している場合、添付ファイルのデータ型はオプションになりますが、それがどのように機能するかはよくわかりません。使用したことがないため、使用できません。それを推奨することも、この目的のためにそれが良いか悪いかを言うこともありません。また、AccessDatabaseEngineのメジャーバージョンの最初のリリースでの新しいデータ型にも注意が必要です。Jet 4の導入時のバイトおよび小数フィールドに関するすべての問題を覚えているだけで、正しく機能しない可能性のあるものにコミットしたくありません。ACCDB形式の添付ファイルタイプはSharepointとの互換性のために導入されたものであり、その外部依存関係は私に一時停止を与えるものです。Sharepointの動作方法が変更された場合、ACCEDBデータ型はいつか変更されますか?そのリスクを冒したいかどうかはわかりません。
TEXTフィールドに入力し、<p>
段落のスタイルを設定できるように、それらと一緒に入力します。
検索可能である必要はないため、SQLのパフォーマンスに影響を与えることはありません。