0

通常我可以简单地用一个问题搜索谷歌并找到答案,但我对 mySQL 数据库一无所知,所以我从头开始。

我的问题是如何格式化/组织我拥有的数据,当它不像电子表格那么简单时。我认为它会被格式化的方式会导致数十万个单独的表,这似乎不正确。这是我拥有的数据,也许有人可以为我指出正确的方向,即如何在 mySQL 数据库中组织它,这样不仅可以组织起来,而且可以根据每个人生成报告“数据点”:

我已经从网站的特定 URL 中抓取了产品评论,比如说亚马逊。我需要按照它们留在亚马逊上的顺序保留评论。

为了简单起见,我会说我从亚马逊上的三个不同 URL 中抓取了产品评论:

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

因此,从这三个 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

现在,由于我已经获得了数千种产品的数据,这显然会导致数以千计的表格,而这不是组织事物的正确/最佳方式。

让事情变得更糟/更复杂的是,有时同一种产品的价格会发生变化,所以它以两种不同的价格出售(实际上,有很多不同的价格)。我还希望能够获得以多个价格出售的每种“相同产品”的“平均价格”,并显示作为一个整体和每个产品的最常留下的日期评论.

因此,您可以看到,我不仅需要能够为每个产品生成报告,而且还需要为每个产品中的每个“列”数据生成报告……这将导致更多的表格。

有人可以指出我应该如何在数据库中组织这些数据的正确方向吗?

如果我的问题太荒谬而无法回答,我深表歉意,我什至不知道如何在数据库中组织它,甚至不知道从哪里开始(在谷歌中输入什么短语)。

4

1 回答 1

2

如果我猜对了,您想存储 threr 不同的东西: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 写了一个 Rewiev。每个产品都有一个评论。一般来说,如果你必须在运行时创建一个表,你会做一些非常糟糕的事情。Tabes 始终是一种修复结构,只有在您决定进行一些重大更改时才会更改,例如为每个用户添加密码。当您添加新信息(例如新评论)时,您总是只添加一个或多个条目。

我觉得你应该得到一本关于 MySQL(或你曾经使用过的)的书或长篇教程,其中 hopfuly 是关于数据组织的重要章节。

我希望我能帮助你。

于 2012-05-27T15:46:17.537 回答