数据库访问:一个主数据库对象或有对象自己调用查询?

数据库访问:一个主数据库对象或有对象自己调用查询?

问题描述:

对于一个爱好项目,我正在构建一个应用程序来跟踪我的钱。注册进出的所有东西。我正在使用sqlite作为数据库后端。 我有两种数据访问模式。数据库访问:一个主数据库对象或有对象自己调用查询?

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

其中哪一个是'最好的',为什么?还是有不同的,更好的模型呢?

+0

我会最初采取最简单的路线,将SQL嵌入到任何需要的地方。如果有一个很好的理由将它移动到一个文件,这听起来像是一个非常简单的重构。 – Andomar 2012-08-05 18:37:11

+0

我使用组合。实际SQL代码的一个“主”连接对象包含在需要它的单独模型中。 – Ben 2012-08-05 18:46:46

+0

“最好的”在旁观者眼中 - 请提供一个具体的问题,而不是讨论的邀请...... – 2012-08-05 21:48:10

后面的选项更好。在第一种选择中,您最终必须触摸您的通用数据访问对象,以便对代码进行任何更新,而不仅仅是显示逻辑的更改。如果你有不同的数据访问对象,那么你将拥有更多可测试的,可维护的代码。

我建议你阅读一下模型 - 视图 - 控制器范例。*上的文章是一个很好的开始:http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller

另外,你没有说你正在编码哪种语言/平台,但大多数平台都有很多选项可以从数据库中自动生成数据访问类的起点。你可能会发现有用的东西。

真的很多东西,要避免的是在你的代码库中使用“相同”的sql。

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

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

那么有多少个数据库操作,它有多大可能会离开SqlLite。