我是编程新手。
昨天我正在考虑设计一个新的程序数据库,但是我有一个问题:
例如,我编写一个爬虫程序而不是记录亚马逊的Kindle电子书,那么我需要创建2个表:
- 项目表:记录电子书名称,ASIN,url.etc
- 价格表:基于ASIN,记录电子书的今天价格,新价格和价格更改的日期。
然后在前端,实际上它需要所有记录时间的lowest price
,我想知道这个lowest price
应该记录在价格表中(就像Excel一样)还是计算FE何时需要?
我知道这两种方法都行得通,我只是想知道专业的程序员是怎么做的?
感谢您的答复。
答案 0 :(得分:0)
这是一个好问题,没有简单的答案...“取决于”
通常,您应该避免重复数据,这样数据库将保持一致。如果您需要汇总-只需查询即可。
如果数据库中有很多查询和很多记录,则应考虑保留这些聚合而不重新计算它们。但是现在您必须在每个插入/更新/删除或每小时,每天/每晚的工作中维护这些聚合。因此,这对您来说还有很多工作。
我建议您从第一种方法开始,如果遇到性能问题,请转到第二种