0

通常、私は単に質問でグーグルを検索して答えを見つけることができますが、文字通りmySQLデータベースについて何も知らないので、ここでゼロから始めます.

私の質問は、スプレッドシートほど単純ではない場合に、私が持っているデータをフォーマット/整理する方法です。私が考えていたフォーマットでは、何十万もの個別のテーブルができてしまい、正しくないようです。これが私が持っているデータです。おそらく誰かが、それを mySQL データベースで整理する方法について正しい方向に向けてくれるので、整理されるだけでなく、個々のデータに基づいてレポートを生成することが可能になります。」ポイント」のデータ:

ウェブサイトの特定の URL から製品レビューをスクレイピングしました。たとえば、Amazon としましょう。アマゾンに残された順番でレビューを保存する必要があります。

これを簡単にするために、Amazon の 3 つの異なる URL から製品レビューを収集したとします。

http://amazon.com/product/12345-x
http://amazon.com/product/12345-y
http://amazon.com/product/12345-z

したがって、これら 3 つの URL のそれぞれから、それぞれの URL に 3 人の異なる人がレビューを残しました。したがって、それがデータベースに格納されると私が考えた方法 (これは正しくありません) は次のようになります。

          TABLE FOR PRODUCT 12345-X
REVIEW NUMBER    REVIEWER     THEIR REVIEW     NAME OF PRODUCT   PRODUCT PRICE   REVIEW LEFT ON
1                username     great product    some product      $399            monday
2                username     crappy product                                     wednesday
3                username     okay product                                       wednesday


          TABLE FOR PRODUCT 12345-Y
REVIEW NUMBER    REVIEWER     THEIR REVIEW     NAME OF PRODUCT   PRODUCT PRICE   REVIEW LEFT ON ON
1                username     great product    some product      $399            monday
2                username     crappy product                                     wednesday
3                username     okay product                                       wednesday


          TABLE FOR PRODUCT 12345-Z
REVIEW NUMBER    REVIEWER     THEIR REVIEW     NAME OF PRODUCT   PRODUCT PRICE   REVIEW LEFT ON ON
1                username     great product    some product      $399            monday
2                username     crappy product                                     wednesday
3                username     okay product                                       wednesday

数千の製品のデータを取得したので、明らかに数千のテーブルになり、物事を整理するための正しい/最良の方法とは言えません.

さらに悪いことに/より複雑なことに、同じ製品の価格が変更されることがあるため、2 つの異なる価格 (実際にはさまざまな価格) で販売されています。また、複数の価格で販売されている「同じ製品」ごとに「平均価格」を取得したり、全体および製品ごとにレビューが最も頻繁に残された日を表示したりしたいと考えています.

したがって、各製品だけでなく、各製品内のデータの「列」ごとにレポートを生成できるようにする必要があることがわかります...これにより、さらに多くのテーブルが作成されます。

このデータをデータベースでどのように編成する必要があるかについて、誰かが正しい方向に向けることができますか?

私が求めていることがばかげて答えられない場合は申し訳ありませんが、データベースでこれを整理する方法や、どこから始めればよいか (Google に入力するフレーズ) についての手がかりさえありません。

4

1 に答える 1

2

1 製品 各製品の 2 レビュー 3 名前のようなレビューをどのように作成したかの人物のデータ ...

必要なのはテーブルだけです。

TABLE FOR PRODUCT
ProductID  P_Price   P_Name
1          399       Name X
2          299       Name y
3          199       Name z

TABLE FOR Review
ReviewID  ProductID  Review            R_Date           UserID
1         2          Review for y      1/1/2012         1
2         1          Review for x      1/1/2010         2
3         3          Review for z      4/4/2009         2


Table for User
UserID    U_Name
1         Peter
2         Simon

たとえば、Simon が X と Z のレビューを書いたことがわかります。また、各製品には 1 つのレビューがあります。一般に、実行時にテーブルを作成する必要がある場合は、本当に面倒なことをします。タブは常に修正構造であり、各ユーザーにパスワードを追加するなど、大きな変更を加えることにした場合にのみ変更されます。新しいレビューなどの新しい情報を追加するときは、常に 1 つまたは複数のエントリのみを追加します。

hopfuly がデータ編成に関する大きな章である、MySQL (または使用したことのあるもの) に関する本または長いチュートリアルを入手する必要があります。

お役に立てれば幸いです。

于 2012-05-27T15:46:17.537 に答える