SQL 数据库布局包括列表作为条目

SQL Database Layout including Lists as entries

我想写一个简单的主页来跟踪各种在线商店的价格。我有一个 scraper,它可以读取特定产品的价格,我计划 运行 这个 scraper 也许一天一次我想跟踪一些产品。

现在我需要存储这些信息,但我不太确定什么是好的方法。我想我应该为我跟踪的每个产品创建一个 table,其中包含两行:date | price.

我还有悬而未决的问题:这样的 table 应该取什么名字?产品名称?如果产品名称包含空格会怎样?或者可能是通往产品的 URL 部分?不过,这似乎有点不可读。或者我应该将 table 名称命名为 id(增加数字)并保留一个单独的 table 名称 products 包含行:product_nameproduct_urltrack_table_id.

这似乎是个好主意,因为我可以稍后向产品添加更多信息(例如描述)。

欢迎就此主题提供任何帮助,因为我以前从未接触过数据库。我的考虑是否合理。还可能出现什么其他问题?

编辑:我无法将完整的产品数据存储在一个 table 中,因为每个产品在不同的时间点都包含可变数量的价格点。

如果我理解正确的话,你需要 3 tables...这是一个基本的关系数据库。

1) a product table
2) a pricing table
3) a price point type table

您的产品 table 将包含产品 IE 的基础知识 product_id product_name 等等等等......

您的产品定价 table 将包括您要存储的价格 -- 它还将包含一个将其与价格点相关联的字段 type

您的价格点类型 table 将包含不同的 类型

例如table一个看起来像这样:

+----------------------------------------------------------+
|                        Products                          | 
+----------------------------------------------------------+
|   product_id    |    product_name    |    product_url    |
+----------------------------------------------------------+
|      101        |    Baby Food       |  www.example.com  |
|      102        |  Green Tomatoes    |  www.widget.com   |
+----------------------------------------------------------+

那么你有一个价格点类型table

+-------------------------------------------------------+
|                  price_point_types                    |
+-------------------------------------------------------+
|    price_point_id    |    type    |    description    |
+-------------------------------------------------------+
|         1            |   small    | Small price point |
|         2            |   medium   |   Medium Point    |
|         3            |   large    |   Large  POint    |
+-------------------------------------------------------+

你有你的定价 table:

+------------------------------------------------------------------+
|                            pricing                               |
+------------------------------------------------------------------+
|    id    |    price_point_id    |    product_id    |    price    |
+------------------------------------------------------------------|
|    1     |           1          |       101        |    5.00     |
|    2     |           2          |       101        |    10.00    |
|    3     |           3          |       101        |    15.00    |
|    4     |           1          |       102        |    6.00     |
|    5     |           2          |       102        |    9.00     |
|    6     |           3          |       102        |    12.00    |
+------------------------------------------------------------------+

现在您可以看到产品 Baby Food 我们有 3 个价格点 smallmediumlarge5.00 的价格相关, 10.0015.00 分别。产品 Green Tomatoes 也是如此。这样您就可以拥有无​​限的价格点类型和每个产品的无限价格点......有意义吗?

我还建议对 RDBMS 和数据库设计进行一些研究。这是一个很好的开始资源:

https://www.calebcurry.com/blogs/database-design/what-is-a-relational-database

在那个系列之后,试试他的下一个视频级别:

https://www.youtube.com/watch?v=e7Pr1VgPK4w

一些 base-line 数据库设计在您开始创建数据库之前是必要的。