2011-07-16 19 views
-1

非常に長いCSVデータを格納するのに最適なMySQLタイプは何でしょうか? 5桁以下の50万の整数を言うでしょうか?非常に長いCSVデータ用に最適なMySQLタイプ

また、CSV文字列に新しい値を追加するのではなく、テーブルに新しい列を追加する利点/欠点は何ですか? MySQLテーブルにも50万カラムがありますか?

私は一度に5桁の整数のいずれかの方法でテーブルを更新しますが、CSV文字列または列のいずれかを多く検索する必要がありますか?

私がやっていることは、誰が何回投票することもできないように、特定のアイデアに投票したユーザーを記録することです。しかし、一定の数のアイデアはありませんが、それは絶えず拡大しています。私はすでにかなり大きなUsersテーブルに何かを追加したくありません。

投票されるアイデアごとに新しいテーブルを作成する方がよいでしょうか?

ここで、最も速い/最も処理の少ない集中的なルートは何でしょうか?

+1

私はあなたの質問に答えましたが、リレーショナルデータベースを使用する背後にある基本的な概念はわからないことは明らかです。あなたの提案されたソリューション(CSVとしての単一の列の多くの値、または各ユーザーアイデアのペアの1つの列)は、データとその関係をデータベースに格納する方法を知らない。あなたはデータベース設計に関する良い本を選び、それを読む必要があります。非常に最初の章か二つはあなたをまっすぐにするはずです。 –

答えて

2

投票したユーザーとアイデアの関係は、ユーザーを識別する列とそのアイデアを識別する列を持つ表で表す必要があります。ユーザーがアイデアに投票すると、この表に行を挿入します。列ペアはこのテーブルの主キーであり、一意性を強制します(重複票を防止します)。

+0

私はアイデアテーブルを持っています:アイデアの短い説明、アイデアを寄稿した人、アイデアが提出されたときのタイムスタンプなどです。アイデアシリアル番号は自動インクリメントで設定されます。アイデアと主キーの主な識別子です。それでは、IdeaテーブルとIdea Votesテーブルを一緒に使用する最良の方法は? – raplhie

+0

私は、あなたが返信している答えの中で、アイデアとユーザーの関係をモデル化する方法(投票とも呼ばれます)については既に説明しました。あなたの「アイデアシリアルナンバー」は、アイデアに基づいてユーザーが投票を表す(ユーザー、アイデア)ペアを形成するために、この第3のテーブルにあるユーザーの識別子と共に使用される外部キーです。 –

1

1つの行のユーザーにすべての票を追加するのではなく、投票とユーザーごとに1つの行を作成します。次に、テーブルには2つのカラム1.ユーザと2.ユーザが投票したアイデアが含まれています。これはあなたの問題を解決し、将来あなたはより多くのことをより簡単に行うことができます。例えば。特定のアイデアの投票数を数えます。

関連する問題