需要有关使用Python和MySQL编写文档控制软件的建议

时间:2014-11-24 01:24:51

标签: python mysql file

我正在寻找有关重写我开发的简单文档控制应用程序的最佳方法的开放式建议,这实际上只是一个自定义文件日志生成器,它查找并记录具有特定命名格式的文件文件位置。例如,我们将所有变更单命名为“CO#3 brief description.docx”。当它们被发布时,它们将被移动到具有项目名称的另一个文件夹下的“已发布”文件夹中。因此,通过记录文件并查询它的路径,我们可以判断它与哪个项目相关联以及是否已经发布。

我用Python 3.3编写了它。运行良好,但代码很难支持,因为我在走文件结构时构建报告,这可能会非常混乱。我认为最好先构建大部分/全部文件的数据库,然后用SQL查询数据库以构建报告。

对于开放式问题,我很抱歉,但我希望不要重新发明轮子。走下这条路有什么建议吗?例如,我应该看的现有应用程序或可能有帮助的捆绑包?我有很多C / C ++编码经验,但我仍然是Python和MySQL的新手。任何建议都将不胜感激。

2 个答案:

答案 0 :(得分:1)

首先,如果它按照您的建议运作良好,那么为什么要修复它?

其次,在对代码进行任何更改之前,我会问自己以下问题:

  1. 我想要实现哪些改进/新要求,我不能轻易使用当前结构?
  2. 我是否有当前解决方案的测试套件,以便我可以回归测试任何重构?当重新实现某些东西时,很容易忽略一些特定的行为,这些行为没有很好地记录,但是你/用户依赖。
  3. 这些改进是否需要SQL数据库?例如:
    • 您是否需要经常从SQL数据库中运行报表而不需要遍历目录结构?
    • 走路目录有问题吗?
    • 您有网络或性能问题吗?
    • 您是否面临使用量的增加?
  4. 实现SQL解决方案时,您需要一个新任务来更新SQL数据。如果我理解正确,报告目前是即时生成的,因此始终是最新的。 SQL报告不会出现这种情况,因此您需要确保它们是最新的。您多久更新一次SQL数据库:
    • a)实时?这将需要后台服务。这可能是一个操作上的麻烦。
    • b)按需?那么当前的解决方案会有什么不同呢?
    • c)在预定时间?然后,您的数据可能在更新之间不是最新的。
  5. 我没有任何软件包或技术方法可以推荐给您,我只是觉得我会给你那些一般的软件管理建议。

    无论如何,我还拥有丰富的C ++,Python和SQL经验,我只想坚持使用Python。

    在SQL方面,为什么坚持使用传统的SQL引擎?例如,为什么不使用MongoDB,它非常适合存储结构化数据,如文件信息。

答案 1 :(得分:1)

@GCord非常好的回答。我只添加两位:

  • 如果它是一个相对较小的数据库,请考虑使用sqlite3而不是 MySQL(开箱即用,多平台,没有 依赖于正在运行的rdbms)
  • 如果预计会增长,和/或你 只想玩一些新技术,尝试自动编写 用于真实文档管理系统的摄取脚本(例如,http://www.alfresco.com/)。 ID 推荐Apache Solr(基于Apache Lucene)作为全文 索引服务,然后您可以自动使用Apache Tika 从文档中提取文本和元数据(请参阅 http://wiki.apache.org/solr/ExtractingRequestHandler