什么是日历/日计划员的最佳数据结构?

时间:2011-12-09 04:33:23

标签: python c database data-structures

我是一名中级程序员。我非常了解C,Java有点好,并且刚刚用Python,Shell和Applescript完成了一些非常基本的编程。我正在为Mac OSX编写程序。

我想创建一个为我计划一天的应用程序,并让我为不同的项目安排截止日期。

这个想法是,我可以告诉程序我在2012年4月1日完成任务的截止日期,并且大约需要80个小时。然后,该程序将根据许多因素选择小时和天来安排专用于该任务的时间块。

这意味着,我需要程序在大量日期中获得精细的时间知识。我需要每天至少30分钟的时间间隔进行分割。如果在该时间安排任务,则需要检查每个30分钟的块,并且可以将任务分配给该块。

因此,每天必须存在这30分钟的时间段,显然会有很多天的程序知道,至少我会说一年或365天。

我只是处于如何存储数据的十字路口。我还没有任何数据库经验,所以我不确定这是一个解决方案,还是涉及到什么。

你会如何处理这个问题?我对此问题的首选语言是C和/或Python。

感谢您提供的任何见解。

1 个答案:

答案 0 :(得分:1)

我建议使用sqlite3。在这里查看api for python http://www.python.org/dev/peps/pep-0249/

您可以使用具有相同api的另一个关系数据库,但是对于您的应用程序的规模,sqlite3提供了一些易用性优势,您可以随时切换dbs。它非常简单,适合您的应用。此外,它是更典型的关系数据库,因此您将能够找到大量信息。

你可以使用一个比较受欢迎的非关系类似http://www.mongodb.org/,如果你没有使用SQL的经验,这可能更容易掌握(我不确定这一点,看看你自己。)Mongo支持几个驱动程序(http://www.mongodb.org/display/DOCS/Drivers),但我建议使用python这样的东西,以便于实现。即。 http://docs.python.org/library/calendar.html非常好。

此外,对于sqlite3还有https://storm.canonical.com/Tutorial和MongoDB的http://mongoengine.org/。根据您的经验和项目范围,这些可能非常值得学习。实际上,随着事情变得越来越复杂,使用ORM层变得更加值得。另一方面,如果您非常熟悉SQL和关系数据库模式,那么为单独项目学习新API可能不值得。