2011-12-09 70 views
2

我是中級程序員。我非常瞭解C,Java很好,並且剛剛用Python,Shell和Applescript做了一些非常基本的編程。我正在爲Mac OSX編寫程序。什麼是日曆/日程安排者的最佳數據結構?

我想創建一個應用程序,爲我計劃我的一天,並讓我爲不同的項目安排截止日期。

這個想法是,我可以告訴程序我有2012年4月1日任務的最後期限,而且大概需要80個小時。然後,該計劃將根據許多因素選擇時間和日期來安排專門用於該任務的時間塊。

這意味着什麼,我需要程序對大量日期有詳細的時間知識。我需要每天至少30分鐘的間隔時間分成幾部分。如果某個任務已安排在該時間內,則需要檢查每個30分鐘的塊,並且可以將任務分配給該塊。

因此,這些30分鐘的積木每天都必須存在,顯然這個程序將會有很多天知道,至少我會說一年或365天。

我只是在如何存儲數據的十字路口。我還沒有使用數據庫的經驗,所以我不確定這是否是一個解決方案,或者涉及到什麼。

你會如何處理這個問題?我對這個問題的首選語言是C和/或Python。

感謝您的任何見解。

回答

1

我建議使用sqlite3。看看這裏的python api for 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。

+0

Storm和SQLite似乎是要走的路。我查看了風暴教程,很容易理解。 SQLite似乎對該項目的適用範圍而言,我並不需要徹底打擊MySQL。 感謝您的信息。我非常感謝所有的鏈接! – user974703

相關問題