【发布时间】:2018-04-25 07:52:21
【问题描述】:
今天我来找你寻求灵感或想法,如何解决一项任务而不用大量重复的代码杀死我的笔记本电脑。
我有一个包含大约 10k 条记录的 CSV 文件。我也有一个数据库,里面有各自的记录。我在这两个结构中都有四个字段:destination、countryCode、prefix 和 cost
每次我用这个 .csv 文件更新数据库时,我都必须检查给定 destination、countryCode 和 prefix 的记录是否存在如果是这样,我必须更新成本。这很简单,而且效果很好。
但棘手的部分来了:destination 可能会从一个 .csv 文件删除到另一个文件,我需要注意这一点并从数据库中删除未使用的记录.处理这种情况最有效的方法是什么?
我真的不想用 .csv 文件中的每一行检查数据库中的每条记录:这听起来是个非常糟糕的主意。 我在考虑一些 time_stamp 或只是一个 bool 变量,它会告诉我记录是否在 DB 的最后更新期间被修改但是:也有可能记录中的任何参数都没有改变,因此:不需要碰那个记录并标记为已修改。
对于该任务,我使用 Python 3 和 mysql.connector lib。
任何想法和建议将不胜感激:)
【问题讨论】:
-
我不明白您是如何知道 .csv 文件中的一个目的地已被删除的。您在 csv 文件中有一行告诉您必须删除该行?
-
没有。你只有即。从三月开始的版本将包含一个目的地,即。西班牙和 4 月的版本中,此目的地已被删除(但没有明确给出有关它的信息)
-
好的,所以基本上任何不在 csv 文件中的条目都必须从数据库中删除,csv 文件中的每个条目都必须在数据库中更新。对我来说,这听起来很明显;您首先使用 csv 文件的条目更新数据库。这样做会在本地列表中附加已更新的每个条目。您可以删除与该本地列表不匹配的所有条目。我错过了什么吗?
标签: mysql database python-3.x csv database-design