• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:テーブルの設計についてアドバイスください)

効率的なプレゼント応募システムを設計する方法

このQ&Aのポイント
  • MySQL5を使用している状況で、プレゼント応募システムの設計に悩んでいます。特に、数百人以上のユーザがいる場合に、効率的な方法を探しています。
  • 現在の設計では、プレゼント応募数を管理するためにticketsテーブルに全ユーザのレコードを登録していますが、数百人以上の場合は非現実的です。
  • 質問者は、効率的な新規登録方法を模索しています。数百人以上のユーザに対してプレゼント応募可能なシステムを構築するには、どのような方法が良いでしょうか?

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

  • ベストアンサー
  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.2

> 各プレゼントへの応募可能数は、ユーザ/プレゼントによって違う というランダムな前提であり,それ以外に規則性も条件もないのであれば,数百人~数千人であろうとも全ユーザ分のレコードを登録するのは必要かつ現実的な作業でしょう。 そうではなく,例えば, 会員Aは3個応募可能,会員Bは2個応募可能,「それ以外の会員は1個応募可能」というような規則性や条件を現実に用いているのであれば,それをシステムに反映させればよいと思います。 応募可能テーブルに対して会員Cでの検索が失敗したらプログラム内で応募可能数を割り当てるとか,「それ以外の既定の会員」という状態に会員idを割り当てて応募可能テーブルに登録しておくとか,そういうことです。

overdist999
質問者

お礼

ありがとうございます。 大変参考になりました。 プログラム側である程度吸収できそうなので、そちらで行います。

その他の回答 (1)

回答No.1

はじめまして。 どんな仕組みで応募可能数が変動するのか分らないので、少し予測がはいります。ごめんなさい。 数百人~数千人のユーザに応募可能数をランダムに入力するとは考えにくいので、多分ユーザのランクとプレゼントごとの係数で算出されるとすれば、です。 presets(プレゼントテーブル) ------------- id 係数 users(会員テーブル) ------------- id ランク tickets(応募可能テーブル) なし にしてユーザのアクセスごとに算出するようにされてはどうですか? 入力画面にあと●回可能ですと表示させたり登録時に可能数を確認後insertを走らせれば運用できるかと思います。 確かにユーザ数*プレゼント数の応募可能テーブルはかなりの速度で大きくなるでしょうし、大変そうですね。 ご期待の答えになればいいのですが。

overdist999
質問者

お礼

ありがとうございます。 詳細説明できず申し訳ありませんでしたが、大変参考になりました。

関連するQ&A