SQL 数据库布局包括列表作为条目
SQL Database Layout including Lists as entries
我想写一个简单的主页来跟踪各种在线商店的价格。我有一个 scraper,它可以读取特定产品的价格,我计划 运行 这个 scraper 也许一天一次我想跟踪一些产品。
现在我需要存储这些信息,但我不太确定什么是好的方法。我想我应该为我跟踪的每个产品创建一个 table,其中包含两行:date
| price
.
我还有悬而未决的问题:这样的 table 应该取什么名字?产品名称?如果产品名称包含空格会怎样?或者可能是通往产品的 URL 部分?不过,这似乎有点不可读。或者我应该将 table 名称命名为 id(增加数字)并保留一个单独的 table 名称 products
包含行:product_name
、product_url
、 track_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 个价格点 small
、medium
和 large
与 5.00
的价格相关, 10.00
和 15.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 数据库设计在您开始创建数据库之前是必要的。
我想写一个简单的主页来跟踪各种在线商店的价格。我有一个 scraper,它可以读取特定产品的价格,我计划 运行 这个 scraper 也许一天一次我想跟踪一些产品。
现在我需要存储这些信息,但我不太确定什么是好的方法。我想我应该为我跟踪的每个产品创建一个 table,其中包含两行:date
| price
.
我还有悬而未决的问题:这样的 table 应该取什么名字?产品名称?如果产品名称包含空格会怎样?或者可能是通往产品的 URL 部分?不过,这似乎有点不可读。或者我应该将 table 名称命名为 id(增加数字)并保留一个单独的 table 名称 products
包含行:product_name
、product_url
、 track_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 个价格点 small
、medium
和 large
与 5.00
的价格相关, 10.00
和 15.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 数据库设计在您开始创建数据库之前是必要的。