質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

Q&A

解決済

1回答

1134閲覧

各商品の時間ごとの値段をデータベースにいれたい

c_php

総合スコア29

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

0グッド

0クリップ

投稿2020/11/17 02:34

編集2020/11/17 02:41

いつもお世話になっております。

ECサイトの管理をしており、商品はそれぞれの担当に値段の変更の権限を与えております。
各商品の値段の推移グラフを作りたく、1日2回任意の時間で値段を抽出しています。

商品ごとにテーブルを作り、テーブル内で取得時間と値段のカラムを作る場合だと
現在商品数は2000ほどあるので、2000ものテーブルを作ることになってしまいます。
大量のデータを時間ごとに扱う場合、どのようにテーブルを作るのがベストでしょうか?

最終的にpythonでグラフの出力をするのですが、
イメージとしては株の値段の推移のグラフをろうそく足のグラフではなく
折れ線グラフに変えたようなものを作成予定です。

現在はCSVで管理しており、
商品コード、取得時間、値段を1つのファイルで管理しています。
1回ごとにファイルを変えているので1日で2ファイルずつ作成しています。

アドバイスよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

q_sane_q

2020/11/17 02:43

商品ごとにテーブルのはBADだと思いますが、「取得時間」のカラムという表現も気になります 「変更時間」ではなくてですか?
c_php

2020/11/17 02:49 編集

すいません。私が値段を取得しているので取得時間という表現をしていました。実際の変更時間は不明です。
c_php

2020/11/17 02:52 編集

また、変更回数も不明です。ただ、急激な値段の変更は禁止しているので日によって競合他社との兼ね合いで値段が上下しています。そのため大体の値段の推移をみるためにグラフを作ることにしました。
hihijiji

2020/11/17 03:25

変更の履歴(ログ)を取っているなら、そこからクエリで求めることをお勧めします。 履歴を取ってないなら取るようにすることをお勧めします。
c_php

2020/11/17 03:44

それぞれの担当ベースで値段を変更した際の履歴は持っていると思いますが、私への提出はファイルが多すぎるのでしていません。
guest

回答1

0

ベストアンサー

・商品コード、商品名を持つテーブルを用意。PRIMARY KEYは商品コード。

・商品コード、時間帯(DaTETIME型)、値段を持つテーブルを用意。PRIMARY KEYは商品コード、時間帯(DaTETIME型)。

投稿2020/11/17 02:51

Orlofsky

総合スコア16417

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

c_php

2020/11/17 05:47

ご回答ありがとうございます。抽象的な質問で申し訳ないのですが、頂いたアドバイスでは1日に4000レコードずつ増え、1年で1460000レコードになると思うのですが、SQLの応答時間って結構かかるものでしょうか?(スペックによるとは思いますが。。。)
Orlofsky

2020/11/17 07:32

1つのテーブルで40億レコード以上のデータを扱ったことがあります。 SELECTの内容によりますが、適切なインデックスが設定してあればそこそこのレスポンスを期待できます。 サイジングの問題もありますから、データの保存期間は決めておきましょう。
c_php

2020/11/19 00:16

ご返答ありがとうございます。一度頂いた内容からDBを作ってみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問