複数カテゴリの選択で効率的な格納方法

このQ&Aのポイント
  • 複数カテゴリの選択で効率的な格納方法について
  • PHPで作成されたブログにおいて複数のカテゴリを効率的に選択・格納する方法
  • 複数カテゴリを選択できるようなブログの処理方法
回答を見る
  • ベストアンサー

複数カテゴリの選択で効率的な格納方法

1つの記事に対して複数のカテゴリを登録できるようにしたいのですが、どのようにしたら効率がよいでしょうか。 PHPで作成されたブログにカテゴリが7つあります。 記事を書いたときにその7つの中から適当なカテゴリを複数選ぶことができるようにします。 カテゴリ情報を含めた記事の内容はMySQLに格納されます。 その際、カテゴリ情報は1つのフィールド(category)に格納されます。 そしてMySQLからデータを参照したときに複数のカテゴリを表示できるようにしたいのですが、複数カテゴリの格納・参照方法をどのようにしたらいいのか分かりません。 今はcategoryフィールドにいちいち○○という文字があったら○○を表示、××という文字があったら××を表示という感じでやっているのですが、効率が悪いような気がしてなりません。 このような複数カテゴリを選択できるようなブログはどのようにして処理しているのでしょうか?

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

カテゴリの内容や数に変更の予定が将来的にないのであれば、文書を 管理するテーブルに7つのフィールドをつけ、setやtiny intなどで フラグ管理をするとよいでしょう。 今後拡張や変更の可能性があるのであれば、カテゴリ登録用のテーブルを つくり、文書idに対して、カテゴリを1対1で登録していくような 仕組みが効率的です。 (たとえば4つのカテゴリを選択していれば文書idに対して4レコード作成される)

astu2006
質問者

お礼

参考になりました。 どうもありがとうございました。

関連するQ&A

  • サブカテゴリ・複数カテゴリを選択できるブログはありませんか

    必ず複数の属性を持つブログを作ろうと思っています。 理想はサブカテゴリ、で検索できる状態です。 そこで、 1大カテゴリ  1-a小カテゴリ  1-b小カテゴリ  1-c小カテゴリ 2大カテゴリ  2-a小カテゴリ  2-b小カテゴリ  2-c小カテゴリ のようにカテゴリ内にサブカテゴリが作れて、 なおかつ 2大カテゴリ 2-a小カテゴリ 2-b小カテゴリのように複数カテゴリを選択できるようなブログってありますか? 目的は、記事が複数の属性で検索できることです。 カテゴリを使わずに検索できるならば、必ずしもカテゴリを使わなくてもかまいません。 その場合は、複数属性で検索可能なブログのでの属性指定の方法を簡単に教えてください。

  • ブログのカテゴリーを複数分けたい

    ブログの記事ごとのカテゴリーを複数に分けることは可能ですか? 例えば1つの記事の中に「豚肉」を使ったレシピと「キャベツ」を使ったレシピを書いたとします。 カテゴリーに「肉」と「野菜」のカテゴリー両方に加えることはできないのでしょうか? ちなみにFC2です。分かりにくい説明ですがよろしくお願いします。

  • 画像の格納

    mysqlに画像を格納してPHPで表示させようとしてるんですが、うまくいきません。下記のような文字列が延々と表示されます。 ????? JFIF? ?H?H?????C?$;'$!!$I47+;VL[YULS どうしてこうなるのでしょうか?

  • フォームの選択リストで表示用とデータベース用に値を分けたい

    phpのformで下記のようなプルダウンメニューを作成しました。 <select size="1" name="category"> <option value="1">1課</option> <option value="2">2課</option> <option value="3">3課</option> </select> nameのcategoryはmysqlのフィールド名で、valueはそれぞれ数字を割り当てました。 mysqlにvalueの値を格納したいのですが、次のプレビューページで見ると <?php echo $category?> valueの値がそのまま表示されてしまいます。プレビュー画面では1課と表示したいのですが、1が表示されてしまいます。 データベース格納用とPHP表示用をどのようにして組み込むことができますでしょうか?

    • ベストアンサー
    • PHP
  • 複数キーでの一意制約

    表題の件宜しくお願いします。 MySQLで複数キーで一意制約はできますでしょうか? 調べてみたのですがそれらしい記事は見つかりませんでした。 例: テーブル名:test フィールド:field_1, field_2の2キーで一意としたい。 field1 = 2 field2 = 3 が格納されている時点で、 field1 = 2 field2 = 4 はインサート可能。 field1 = 2 field2 = 3 はNG。 両方のキーにunique制約を貼ればいけるかな?と思ったのですがうまくいきません。 宜しくお願いします。

    • ベストアンサー
    • MySQL
  • 複数のカテゴリ指定が可能なシステム構築方法

    下記のような、複数のカテゴリ指定が可能なシステムを導入する為に、PHPとMysqlの組み合わせがいいと聞いたのですが、かなりの初心者でもわかりやすく、詳しい本や解説サイト等あれば教えてください。 http://www.homepro.co.jp/reform/ 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • date型フィールドへのデータ挿入がうまくいきません。

    date型フィールドへのデータ挿入がうまくいきません。 PHP5.2.6,MySql5.0.51bを利用しています。 フィールドにdate型を指定して、phpからmysql_queryで"2010-1-1"というデータを挿入したところ"0000-00-00"として格納されていました。 phpMyAdminから「挿入」・「SQL」で"2010-1-1"を挿入したところちゃんと"2010-01-01"として格納されました。 phpから"2010-1-1"というデータを"2010-01-01"として格納するにはどうすればいいのでしょうか? 文字コードはphp・MySqlともにUTF-8を使用しています。

    • ベストアンサー
    • PHP
  • 改行コードが半角スペースになってしまいます

    もしかしたらカテゴリはphpかも知れません。 よろしくお願いします。 phpとMySQLでWEBアプリを作っています。html上のtextareaフォームに入力した文字列を、phpを使ってMySQLにINSERTします。この文字列には改行(CRLF)も含まれます。 それをSELECTで参照し表示させると、改行が半角スペースに変換されてしまいます。 phpMyAdminで見てみるとちゃんと改行が入っています。 つまり、格納の段階ではちゃんと改行コードが入っているんですが、取り出すときに変換されてしまうようです。 この場合、どのように対処すればいいのでしょうか?

    • ベストアンサー
    • MySQL
  • mysql,google maps api、php

    php、mysql、google maps apiを使ったウェブサイトを作成したいと考えています。 php→mysqlの段階まではクリアできていますが、mysql→google mapのプロセスで妻づいているため、このカテゴリで質問させていただきました。 phpを使ってmysqlに緯度経度等の情報を格納し、格納された情報google mapに反映(mysql内の各情報についてmap上にマーカーを付ける)させた上で、サイト上に表示させることは可能でしょうか? phpからmysqlへ情報を格納するところまでは実際に作ってみてできたのですが、mysqlの情報が付加されたgoogle mapをサイトに表示させるところがどうしてもわかりません。 ヒントになるようなサイト等ありましたら教えていただけないでしょうか?

  • 文字参照からUTF-8への変換

    MySQLデータベース上にlatin1の文字列データが格納されています。このデータは、具体的には&#nnnnn;のような10進型文字参照の連続です。ウェブアプリケーションを介してブラウザー上では日本語、中国語、アラビア語その他言語の文字列として表示されます。 このデータをUTF-8に変換し、新たなフィールドに格納するためには、どのようにしたら良いでしょうか。MySQLだけで平易に解決できるならそれに越したことはないのですが、PHPまたはASP.NETによるソリューションでも構いません。

    • ベストアンサー
    • MySQL

専門家に質問してみよう