1

ユーザーに質問をし、国の形で回答を要求するアプリケーションを作成しています。

例:アイフェル タワーはどこにありますか?

ユーザーには多くの選択肢が提示されます。たとえば、10 か国としましょう。

問題は、すべての回答を mySQL データベースに保存したいときに発生します。すべての国を含むテーブルがあり、どの国が質問に含まれているかを保存する必要があります。ただし、このようにすると、この場合、1 つの回答済みの質問に対して 10 行のデータベースが作成されます。含まれる国をビット マスクとして格納することを検討してきましたが、150 を超える可能性のある国では単一のビット マスクでは十分ではありません。

データを保存するための良い方法についてのヘルプは大歓迎です!

ありがとう!

4

1 に答える 1

0

あなたが提案しているように、関係をテーブルに保存するだけです。つまり、最初のテーブルには質問 (Id、question_text、..) が含まれ、2 番目のテーブルにはすべての国 (Id、name、..) が含まれ、3 番目のテーブルには、どの国がどの質問のオプションであるかを示すリレーションが含まれます。 (question_id, country_id)。あなたが言うように、これは 1 つの質問に対してリレーションシップ テーブルに 10 行を与えますが、ここでストレージ スペースまたはパフォーマンスの問題に本当に直面していますか?

このような質問が 10,000 ある場合でも、それは 100,000 行であり、データは 1 メガバイト未満です。質問自体にはそれよりも多くのデータが含まれているため、私が見る限り、質問と国の関係は問題になりません。

于 2012-10-07T09:38:15.473 に答える