匿名質問者

Rubyを使ってYahooファイナンスをスクレイピングして株価をDBに蓄積しようとしています。

株価の取得はできているのですが、それをMySQLに蓄積する場合、

・銘柄毎にテーブルを作る。銘柄の選択はテーブル名で行う
・全ての銘柄を一つのテーブルに蓄積する。銘柄の選択は、テーブル中の証券コードフィールドで行う
のどちらが適切でしょうか。
データ取得は2~3時間に一度行う予定です。
これまで、簡単なWEBアプリ程度は作った事が有るのですが、大量のデータを扱った経験が無く、SQLもサイトを見ながら必要な部分だけつまみ食いした感じなので、
DB設計の定石的な知識がありません。
アドバイスをお願い致します。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2014/02/04 18:24:48

ベストアンサー

匿名回答2号 No.1

後者です。

テーブルはクラスのようなもの,テーブル内のレコードはインスタンスのようなものだと思って下さい。(Ruby on Railsでもそういう設計になっています)

銘柄ごとにクラスをいっぱい作るのはNG設計ですよね。
銘柄ごとにインスタンスがいっぱい作れるように,クラスを設計するのです。

同じように,1テーブル内で全銘柄の違いを吸収できるようにしましょう。

匿名質問者

クラスに例えて戴き、良く理解する事ができました。
疑問が溶けて、スッキリしました。
ありがとう御座います。

2014/02/04 18:24:41
  • 匿名回答1号
    匿名回答1号 2014/02/04 00:54:30
    >・銘柄毎にテーブルを作る。銘柄の選択はテーブル名で行う
    だめよ~、だめ、だめ。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません