我在一个网站上爬行,上面有一些 listings
并将新列表存储在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
(自动增量)从数据库。当我在 AddPricesToDatabase()
管道它还没有找到 AddListingsToDatabase()
管道。
我的问题
为一个被刮去的文件保存额外信息的最佳方法是什么 Item
在另一张table上?
1条答案
按热度按时间ezykj2lf1#
如注解中所述,您可以创建一个组合标识符,而不是自动递增标识符,例如
website_id
+listing_id
这将唯一地识别你的记录。您可以将其存储在单个列中,也可以存储在两个单独的列中并创建一个组合键。
例如:
websites
表格:| website_id | guid | title | body | created_at
```
listing_prices
表格:在
listings
表中,您必须确保id
以及website_id
是独一无二的。