データベースを実装する前に、いくつかの調査を行う必要がある Web アプリケーションに取り組んでいます。コーディングを開始する前に、いくつかの適切な決定を下すのに役立つことを願っています.
今日、テーブルに約 200 万の連絡先を含むデータベースがあります。
連絡先: cid、名前、電話番号、住所など...
アプリケーションのユーザーは、さまざまな基準に基づいて連絡先テーブルを検索し、連絡先のリストを取得できます。
ユーザーは別のデータベーステーブルに保存されます
ユーザー: uid、名前、電子メールなど...
ここで、ユーザーが検索結果を選択として保存できるようにしたいと考えています。選択は、ユーザーが取得した検索結果のすべての連絡先を表す cid のリストでなければなりません。選択が保存されると、ユーザーは選択を開き、選択内のさまざまな連絡先にメモやステータスなどを追加できます。
私の最初の考えは、次のような選択テーブルと選択-連絡先マッピング テーブルを作成することです。
選択: sid、名前、説明、uid など
SelectionContactMap: sid、cid、ステータス、メモなど...
1,000 から 100,000 の連絡先の平均セレクション サイズと、多数のセレクションを保存する数千のユーザーを使用すると、SelectionContactMap テーブルが非常に急速に大きくなることがわかります。
データベースはMySqlで、アプリケーションはPHPで書かれています。予算が限られているため、タスクに無制限のハードウェアを投入することはできません。
私はここで間違った道を進んでいますか?
これを可能な限り最善の方法で解決するための提案はありますか?
- 他のデータベース?
- MySql固有の提案、テーブルタイプなど?
- 他のデータベース設計?
- コメントや提案は大歓迎です。
前もって感謝します :)
-- トア・イング