前提・実現したいこと
Rails初心者です。
複数の同じジャンルのサイトからスクレイピングしたデータを整形して表示するWEBアプリを作っており、取得したデータを格納するデータベースの設計について考えています。
発生している問題
同じ商品を扱うサイトA、サイトB、サイトC......から商品名とその価格を取得しています。商品名はあらかじめすべて統一しており、同じ商品が2つ以上の名前で表されることはないようにしています。
取得元のサイトは10サイト弱を予定しており、アプリ完成後も容易にに追加・削除ができるようにしたいと思っています。
ここで、データーベースにどのようにデータを格納するかを2つほど考えてみました。
1)
サイトごとにテーブルを分け、商品情報を保管するマスターテーブルを作る。
サイトごとのテーブルにはマスターの商品IDとそのサイトでの価格、価格の更新日時を格納する。
2)
1つのテーブルに、商品名、サイトAの価格、サイトBの価格.......、サイトAの価格の更新日時、サイトBの価格の更新日時......のように、各サイトごとのカラムを作る。
個人的には1)のほうが良さげに思ったのですが、Railsでの実装が煩雑になりそうだなと思ったことと、また、2)は逆にカラム数が増えすぎる心配とサイトの追加・削除によるカラムの追加・削除が難しくなりそうだと感じたこととで結論に至れておりません。
どなたかデータベース設計でアイデアや一般論などある方、ご教授よろしくお願い致します。
補足情報(FW/ツールのバージョンなど)
Ruby 2.6.3
Rails 6.0.1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/07 12:09
2019/12/07 12:50
2019/12/07 12:56