我决定用 Ruby 编写一个小程序来处理我不起眼的财务跟踪需求。它基本上是一个分类帐,一个跟踪收入和支出并进行各种数据聚合的程序。我在命令行中很舒服,这就是为什么我决定把东西放在那里,而不是让它成为一个图形应用程序。
那么问题来了:我应该使用什么样的后端来存储数据?我考虑过 sqlite,但我愿意接受建议。如果我最终应该使用 SQL 数据库,我应该考虑使用 ORM 吗?
我决定用 Ruby 编写一个小程序来处理我不起眼的财务跟踪需求。它基本上是一个分类帐,一个跟踪收入和支出并进行各种数据聚合的程序。我在命令行中很舒服,这就是为什么我决定把东西放在那里,而不是让它成为一个图形应用程序。
那么问题来了:我应该使用什么样的后端来存储数据?我考虑过 sqlite,但我愿意接受建议。如果我最终应该使用 SQL 数据库,我应该考虑使用 ORM 吗?
SQLite 可以很好 - 如果您需要能够回滚到以前的状态,它很容易从命令行使用,易于备份,并且易于版本化。
有一个很好的 ORM,叫做 Sequel,我在做非 Rails 的事情时非常喜欢它:http: //sequel.rubyforge.org/
你有多少数据?他们经常改变吗?
对于短数据序列,我经常将 HERE 文档与 YAML 结合使用。
一个例子:
require 'yaml'
YAML.load(DATA).each{|account, data|
sum = 0
data.each{|x| sum += x }
puts "%s: %i" % [ account, sum ]
}
__END__
account1:
- 1
- 2
- 3
- 4
account2:
- 10
- 20
- 30
- 40
DATA
是一个 IO 对象,包含END之后的内容。
这允许您在脚本中进行数据更改,您不需要 DB-Editor。
如果您想修改程序中的数据并存储结果,我推荐 - 如 Benjamin - SQLITE 和 Sequel。