- ベストアンサー
テーブルの設計について教えてください。
エクセルVBA+アクセスで、株式相場の分析プログラムを作ろうとしています。 市場データはアクセスに記録させようとしているのですが、 テーブルを各銘柄毎に作るのがよいのか? 1つのテーブルに、全銘柄のデータを記録させるのがよいのか? 判断しかねています。 プログラムのし易さ、データのメンテを考えると、一長一短がありそうなのですが、 こういった場合、一般的にはどちらを選択するのでしょうか? よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
株式については全くの門外漢ですが・・・ どの銘柄も同じ要素なら、一つのテーブルの方がよろしいかと思います。 ジャスダック?と東証では何かが異なるとかの場合は・・どうなのか分かりませんけど 銘柄マスタ ID 企業名 企業名その他 価格テーブル ID (銘柄マスタとリンク) logDate ・・・ とかになるのでは? 分割や抽出はクエリで簡単に行えますし・・・、 1テーブルでAccessの制限である1ギガバイトを超える事も無いでしょうし・・・ 余談ですが 提示されたフィールド名は、Accessの予約語に含まれるので考え直した方が・・ http://support.microsoft.com/default.aspx?scid=kb;ja;286335 ・・ばかりが目につきますがご容赦を。
その他の回答 (3)
- moon_night
- ベストアンサー率32% (598/1831)
一つのテーブルでいいと思いますが、300銘柄程度を毎日記録しつづけると、データが一年で10万件を超えてしまいます。 PCのスペックが低いとかなりの速度低下になるので、Accessではなく、まともなSQLを入れたほうが快適になるかもしれません。
- nicotinism
- ベストアンサー率70% (1019/1452)
No2です ごめんなさい。予約語では無かったですね・・ (^^ゞ
お礼
ありがとうございます。 テーブルはひとつでいこうと思います。
- moon_night
- ベストアンサー率32% (598/1831)
機能に拠ります。 一つのテーブルに入れても問題ないと思いますが。 (銘柄の増減を考えると一つのテーブルのほうがよいでしょう) または正規化して、銘柄テーブルと金額を入れるテーブルに分けるとか。
お礼
早速の、ご回答、ありがとうございます。 すみません、質問が漠然としすぎていました。 単一のテーブルの場合は、つぎのようにしようかと考えています。 市場価格テーブル ID dateID companyID open (始値) high (高値) low (安値) close (終値) 正規化はきちんとするつもりです。 やはり、テーブルを1つにするべきでしょうか?
お礼
ご回答、ありがとうございます。 Accessにこだわるわけではないのですが、 結果検証が容易な、Excel+VBAでやりたいと思っています。 Excel+VBAと相性の良い、データベースってほかにあるでしょうか?
補足
すみません。 お礼のところに書いた質問は、 この質問のタイトルから離れてしまいますので、 新規に質問をたてることにしました。 ご回答いただける場合は、そちらにお願いします。