• ベストアンサー

初心者的質問ですが、テーブル構築について教えて下さい。

今回始めてMySQLに挑戦してどのようにしていい物か困っています。 何か適切なアドバイスをお教え頂ければと思い投稿しました。 どういう事でかと言いますと、現在レンタル掲示板を作ってみようと思いました。 その際に登録者管理テーブル、掲示板データテーブルが必要になり、 ID毎に掲示板のデータテーブルを持つべきか?と悩んでおりました。 掲示板はID毎に幾つでも作成出来る仕組みにしようと思っているので、 その掲示板毎のテーブルも必要かと考えております。 その際にテーブルの中のテーブルみたいな持ち方は可能でしょうか? 例えば userid_tableに --userid --name --email 等を持たせ useridに沿った形で userid001_table_bbs_id (001の部分が常に増えていく) --bbsid --type bbsidに沿った形で bbsid001_table_data(001の部分が常に増えていく) --data みたいな物が出来ればと思っております。 phpMyAdminでテーブルを持たせすぎるとユーザーが増えた場合管理が大変かと思い、何かいい方法があれば教えて頂きたく思いました。 この持たせ方が出来れば既存ソースがある程度そのまま使えるかと思ったので・・ もし出来ない様であればどうしてもID毎で普通にテーブル追加する他ないのか、それともテーブルに全データを入れておいても問題ないのか、その辺が分かると助かります。 データ量もどんどん増えていくと思われる為、かなりの量になるので出来ればユーザー毎でテーブルを持たせたく思っております。 正直全くの初心者でどう質問していいのかも今ひとつ分かっていませんが、 どなたか教えて頂けたらと思い投稿してみました。 何卒よろしくお願い致します。

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

  • ベストアンサー
  • mooboogie
  • ベストアンサー率68% (28/41)
回答No.2

横から失礼。 >データ件数が増えた場合に遅くなるのでは? それが遅くならないのです。というのはindexを使用した検索を行うためです。 私の管理するテーブルで、730万件のテーブルがあります。複合index使用でデータを1件取り出すのに0.0137秒です。

kofumatu
質問者

お礼

ご回答頂きありがとう御座います。 そうなんですか! これは目から鱗です。 本当に助かりました。

その他の回答 (1)

回答No.1

useridやbbsid毎に、別表にしようと考えた理由は、どういったことででしょうか? 二つ目の表は、(userid,bbsid,type) 三つ目の表は、(bbsid,data) といった感じで管理すればいいのでは?

kofumatu
質問者

お礼

ご回答頂きありがとう御座います。 別にしようと思ったのはデータ件数が増えた場合に遅くなるのでは? と思ったからです。 参照テーブルが決まっていれば掲示板データ表示時にはそのテーブルだけ見ればいいので早いのでは? と思った為です。 さほど大差はないのでしょうか?

関連するQ&A