gpt4 book ai didi

python - 垃圾/ python /MySQL : What is the best approach for saving additional item information in a separate table?

转载 作者:行者123 更新时间:2023-11-30 21:37:06 24 4
gpt4 key购买 nike

我正在使用包含某种listings 的 Scrapy 抓取一个网站,并将新列表存储在 MySQL 表中。对于每个 listing,我想将 price 添加到一个单独的表中(当它发生变化时)。

我目前的做法

listings 表:

<id> | guid | title | body | created_at
-------------------------------------

listing_prices 表:

<id> | listing_id | price | created_at
------------------------------------

使用 AddListingsToDatabase() 管道保存新列表,然后使用 AddPricesToDatabase() 管道将新的/更新的价格保存到数据库。

AddPricesToDatabase() 中,我正在查询数据库以获取所有带有价格的列表。然后我检查价格是否已更改并添加/更新价格。因此我需要 listing.id

到目前为止,这只适用于在当前抓取之前已经存在于数据库中的列表。

我的问题

当我想向数据库中添加新价格时,我需要数据库中的 listing.id (auto_increment)。当我在 AddPricesToDatabase() 管道中查询数据库时,它还没有找到 AddListingsToDatabase() 管道新添加的列表。

我的问题

在单独的表中保存已抓取的 Item 的附加信息的最佳方法是什么?

最佳答案

如评论中所述,您可以创建一个组合标识符,例如 website_id + listing_id 来唯一标识您的记录,而不是自动递增您的标识符。

您可以将其存储在单个列中,或存储在两个单独的列中并创建组合键。

例如:

网站表:

<id> | website_url
------------------

listings 表:

<id> | website_id | guid | title | body | created_at
----------------------------------------------------

listing_prices 表:

<id> | website_id | listing_id | price | created_at
---------------------------------------------------

listings 表中,您必须确保 idwebsite_id 的组合是唯一的。

关于python - 垃圾/ python /MySQL : What is the best approach for saving additional item information in a separate table?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53395411/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com