人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

SQLのデータ構造について質問です。

試験の成績についてDBに保存しているのですが、保存テーブルはこのようになってます。
+---------+-------+
| Shiken | kaito |
+---------+-------+
| buturi1 | 1 2 3 |
+---------+-------+
試験と回答がそれぞれに紐付けられていて、回答は半角スペースでじゃんじゃん放り込むというシンプルなものです。
特に複雑なものではないのでいまのところ問題はないのですが、回答部分についての設計がこれでいいのか?どうか?というがあります。
この構造にするに至った理由は
・試験自体がシンプルであったこと(成績が確認出来さえすればよかったため)
・回答1個につきジャンジャンinsertしていたら膨大な数になるのでは?と思ったこと
・単にSQLの知識がなかったのでこれでいいかという考え + これでも問題なく動いたので
ということもあって今の構造になっています。
これをもっと効率よくしようとした場合はやはり回答用の別テーブルを作って1解答ごとにinsertしていくほうがよいのでしょうか?
なにぶんデータベースの作法もままならない部分がありますのでアドバイスいただければと思います。

●質問者: quocard
●カテゴリ:インターネット ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● taroe
●100ポイント

>これをもっと効率よくしようとした場合はやはり回答用の別テーブルを作って1解答ごとにinsertしていくほうがよいのでしょうか?

普通はそうです。
データが少なくても、教科書通りに作ってしまいますね。

>回答1個につきジャンジャンinsertしていたら膨大な数になるのでは?と思ったこと

膨大な数って何件のことなのか不明ですが
通常はそういうのは気にしないんです。

実際にそう作ってみて、
性能に問題があるとかそういう場合に見直す程度です。

今のPCの性能でそんな心配は要らないと思います。

効率に関しても、INSERTが1回ですむとか10回かかるとか程度も
関係ないというか意識しませんね。



>試験と回答がそれぞれに紐付けられていて、回答は半角スペースでじゃんじゃん放り込むというシンプルなものです。
>特に複雑なものではないのでいまのところ問題はないのですが、回答部分についての設計がこれでいいのか?どうか?というがあります。

ほかの要件などがわからないのでなんとも言いがたいですが、
プロでもこういう設計をする場合もあります。

実際にこのような形式でデータを保存している業務システムもあります。


一概に悪いとも言いがたいのですが、
プロでも意見が分かれる話なので、こうしたい場合にはやはりそれなりの理由が必要と
いうことになります。


逆に言うと、教科書どおりにDBを正規化して構造のものは
少々効率が悪くても、誰もおかしいとは言い出しません。

実践的データモデリング入門 (DB magazine selection)
真野 正
4798103853


quocardさんのコメント
回答ありがとうございます。 非常に参考になりました。 状況によりけりなので一概には言えないわけですが手法や考えなどとても参考になりました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ