- ベストアンサー
PHP+MySQLで数千字程度のテキストを扱う方法は?
- PHPを勉強中の方が、PHP+MySQLで数千字程度のテキストを扱う方法について悩んでいます。
- 具体的には、テキストファイルとして保存してデータベースにファイル名を保存し、ファイル名からPHPのテキストファイルを読み込む関数で読み込む方法と、TEXT型(あるいはVARCHAR型?)でそのままデータベースに保存する方法が考えられます。
- また、テキストの利用方法として、そのままHTMLに出力して表示する方法や、複数ファイルから特定の文字列を含むもののみを選び出す方法についても検討しています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
基本的にデータベースの処理速度(検索速度)は、レコード数に比例しますので、VARCHAR型かTEXT型かでの違いはほとんどありません。 文字列が数百から数千とあるので、普通にVARCHAR型でいいかと思います。 TEXT型にするのは、固定長であることに意味がある時で、また日本語(漢字)などを扱う場合には何かとVARCHAR型の方が便利なようです。
その他の回答 (2)
No.2です。 ゴメンなさい。 レコード数というよりも「レコード件数」と言った方がいいかも知れませんね。
- notnot
- ベストアンサー率47% (4900/10358)
数千字程度の少量データであれば、どのような方法をとっても処理時間的には差が出ませんので、自分のやってみたい方法でやればいいかと思います。 勉強目的であれば、いろいろな処理方法を全部トライしてみるのが良いかと。
お礼
ありがとうございました。どちらの方法でもあまり差はないのか?というところもほしい情報だったので助かりました。今回は用途からテキストファイルに最初に挑戦してみようかと思います。 今後これを見た方のためにそれを選んだ理由を挙げておくと、 ・PHPのread関数でフォルダ内のファイルのリストを取得でき、テキストファイル名を配列として取得するのは容易 ・テキストファイルの検索も比較的楽そう ・VARCHAR型のデータ呼び出しで255文字までしか受け取れない(VARCHAR型の問題ではないらしいが)らしいという情報があり、その解決方法がよく分からない ・ファイルとして扱えるので編集が楽 というのが理由で、 1. 全テキストファイルを検索して語を含むファイル名のみを得る 2. ファイル名にレコードIDを含めておき、語を含むファイルIDの配列を作成する 3. IDの配列についてSQLでレコードを参照し、その他の情報を取り出す という方法でデータの取り出しを行おうと思います。 ありがとうございました。
お礼
回答ありがとうございました。今回は、とりあえずテキストファイルで作ってみようかと思いますが、TEXTとVARCHARの違いについて納得できる説明をいただけたのでベストアンサーにさせていただきました。