- ベストアンサー
効率的な大量チェックボックスの実装方法は?
- ユーザー登録処理の設計において、20個の種類がある「趣味」という項目の実装方法を考えています。
- 処理速度と今後の趣味の種類数増加に重点を置いた最適な実装方法は何でしょうか?ユーザーテーブルに20byteの「趣味」列を作り、ブラウザ側でチェックした種類の値をbitフラグで格納する方法を検討しています。
- 他の実装方法として、趣味テーブルや趣味マスターテーブルの使用が考えられますが、ユーザー数が多い場合や処理速度を考慮すると複雑になりがちです。効率的な方法があれば教えてください!
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
う~ん、他に案は出てこないですね・・・ あえていうなら、前者の方式を使うなら私はバイトじゃなくてビットにします。 前者と後者を比べるなら、私は後者を選びます。 後者の方がデータを扱いやすいというだけの理由です。 前者の場合、何番目のバイトがどの趣味に関連づけられているかはプログラム上でしかわかりませんが、後者の場合、データベースだけで表現できます。 やはり、趣味が増えた時や趣味に区分をつけるなどする時などを考えると明らかに後者の方が変更しやすいです。 処理速度を心配されているようですが、それはどのようにデータを処理するかによるのではないでしょうか? 登録処理や編集処理などと言った処理は普通なら滅多にしませんよね?読み込みも毎回読み込むわけじゃありませんよね? その上で最大同時処理数や処理負荷を考えると、たいした負荷はかからないと思います。 それでも心配なら、簡単なプログラムを作って処理負荷を計測してみるのもいいかもしれません。
その他の回答 (1)
- kougasha
- ベストアンサー率32% (34/105)
答える立場になって考えると、チェックボックスがたくさん並んだ登録画面は、見ただけでウンザリしてしまうような気がします。 「趣味」をカテゴリ分けして、別画面に階層化するというUIはいかがでしょう? 上位階層のチェックがOFFなら下位のものはノーチェックで良いわけですし。 こういう構造はbacho39さんが作成しようとしているものには当てはまらないかもしれませんが。
お礼
確かに答える側からすれば、ウンザリかもしれませんね(汗)。 でも一画面で選べることも、ユーザーからみれば つかいやすい内容であるとも思います。 とりあえず、別画面にする設計にはなりそうもないので、 チェックボックスを並べて表示します。 アドバイスいただき、ありがとうございました。
お礼
親切なご回答、ありがとうございます。 とりあえず、前者の方式でビットにし、 処理負荷の計測をやってみます。 とても参考になりました。 ありがとうございました。