数据库访问:一个主数据库对象还是让对象自己调用查询?

时间:2012-08-05 18:34:28

标签: sql database theory

对于一个业余爱好项目,我正在构建一个应用程序来跟踪我的钱。注册所有进出的东西。我使用sqlite作为数据库后端。 我有两种数据访问模型。

  • 创建一个主对象作为一种数据库连接器,其中包含执行查询并以对象列表形式提供所需数据集的方法
  • 让需要数据的对象自己执行查询

其中哪一个是“最好的”,为什么?或者那里有不同的,更好的模型吗?

2 个答案:

答案 0 :(得分:1)

后一种选择更好。在第一个选项中,您最终将不得不触摸您的通用数据访问对象,以获得对代码的任何更新,而这些更新并非纯粹是显示逻辑的更改。如果您有不同的数据访问对象,那么您将拥有更多可测试,可维护的代码。

我建议你阅读一下模型 - 视图 - 控制器范例。关于它的维基百科文章是一个良好的开端:http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller

此外,您没有说明您编写的语言/平台,但大多数平台都有许多选项可以自动生成数据库中数据访问类的起点。你可能会发现类似的东西。

答案 1 :(得分:0)

真的很多,要避免的是在你的代码库中散布“相同”的sql。

关键是。您刚刚向Table1添加了一个新列。当你在文件中查找“Table1”时,你会得到多少次点击以及在哪里。

如果你使用一个类并且有很多数据库操作,它会很快变得非常混乱,但是如果你有一个接口(比如IModel)有一个实现,你可以很容易地交换后端。

那么有多少数据库操作,以及你将从SqlLite转移的可能性有多大。