質問: PHPとMySQLについて サイトの作成を考えています。会員登録してその会員のデータをPHPで編集したり、表示したりするサイト 例えば、 |会員NO|会員ID|パスワード|メールアドレス| のような会員情報があり、 入会時には会員ごとの お気に入りWEBページ|ページの評価1~5|コメント| ×N個 お気に入りの書籍|本の評価1~5|コメント| ×N個 のようなテーブル?(始めは空でユーザが登録していける) を自動で作る感じです。 これって、MySQLでできるのでしょうか? どんなDB設計にすればよいか教えてください。 可能であればPHPでのDB操作イメージ、ソースがあると助かります。
回答: >これって、MySQLでできるのでしょうか? できます。 >どんなDB設計にすればよいか教えてください。 やり方はいろいろありますが、まずは質問文通りに作成してみては? ・会員情報テーブル |会員NO|会員ID|パスワード|メールアドレス| 、 ・お気に入りのWEBページテーブル |会員NO|お気に入りWEBページ|ページの評価1~5|コメント| ・お気に入りの書籍テーブル |会員NO|お気に入りの書籍|本の評価1~5|コメント| 会員NOで1対多になるように作るだけ >可能であればPHPでのDB操作イメージ、ソースがあると助かります PHPプロ!PHP講座 ------------ 追記: グラス片手にデータベース設計~販売管理システム編 (DBMagazine SELECTION) 梅田 弘之 !479810566X 顧客管理とか見つからなかったので販売管理で。 1枚の伝票に複数の明細がつきます。 1枚の伝票=会員 明細=お気に入りのXXX にあたります。 1枚の伝票:明細=1:N 対応と言います。 >『お気に入りのWEBページテーブル』というのは全体でひとつというイメージでしょうか? >ユーザ毎にあったほうが、検索スピードとかが速くなるとか、 >例えば会員が1万人いてそれぞれが、100件お気に入り~を登録したら、 >100万件のレコードが格納されるわけですが、そんなもんなんでしょうか? 全体で1つですよ。 100万件のレコードでも最近は問題ないぐらいの速度が出ますよ。 テーブル設計はこれで一般的です。 普通にテーブルの正規化を行うだけです。 速度に問題が生じるとか生じた段階で方式を考えるわけですね。