2011-02-06 3 views
-1

私はいくつかの記事(ブログ投稿)をmysqlテーブルに保存したいと思います。これらの投稿はより多くの部分から作成されます(例えばpart1、part2 ... part x) 私はそれらを保存する方法を知らない。 各パーツをテキストファイルに保存することができますか、それをどのようにmysqlデータベースに格納できますか? このサイズのデータ​​をサポートするフィールドはどれですか? 投稿の各部分を保存するためにテーブルをどのように設計する必要がありますか? 各セルを同じセルに格納し、word()で区切り、phpで切り取るのは良いでしょうか?MySQLに記事を保存するには?

ありがとうございます!

答えて

1

私は、1つのテーブル "投稿"と2番目のテーブル "Post_part"とFKを "投稿"にすることをお勧めします。 "Post_part"テーブルでは、TEXTタイプの列にテキストを格納できます。

+1

ありがとう、私はこれを試してみます – coolboycsaba

+1

喜んで助けてください。もっと助けが必要な場合は、ここにコメントを投稿してください。 – Jan

3

共通の設計方法は、「部品」の表を作成することです、例:

低トラフィックで正常に動作します
CREATE TABLE parts (page_id INTEGER, part_name VARCHAR(255), body TEXT); 

。 (この場合のpage_idは、この部分を所有しているページの外部キーです.natch SELECT * FROM parts WHERE page_id = :some_page_idと言って特定のページのすべての部分を取得します)

トラフィックが増加するにつれて、ページを組み立てることは大変なことになるかもしれません。その場合は、大きな内容のテキストフィールドから本文の内容を分割することは恐ろしいことではありません。このレベルでは、データベースの列にハッシュを直接シリアル化して、アプリケーションサーバーのCPUを(DBサーバーとは対照的に)作業の正当な立場に置くことで、速度が向上します。あなたが興味があると思い

列の型は「文字列タイプのストレージ要件」の下にここに列挙されていますhttp://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html

をまとめると、TEXT(64キロバイト)は、最も基本的なデータを保持するのに十分な大きさでなければなりません。データが著しく大きくなったり、成長が予測される場合は、MEDIUMTEXT(16 MB)またはLONG​​TEXT(4096 MB) BLOB、MEDIUMBLOBまたはLONG​​BLOB(* TEXT型と同じサイズ)を使用して、DB列からPHP変数の逆シリアル化を実行します。

関連する問題