我正处于基于Access db构建winform C#app的早期阶段(由于各种原因不能使用其他类型的DB)。 我的主要问题是如何设计数据库,因为数据量很大(基于每日数据),并且它将在一个月左右的时间内填满其大小限制。 我想过每个月都要创建一个新的数据库,但是我怎样才能比较不同数据库之间的数据,例如几个月之间?我希望C#app执行查询。 有没有教程,书籍?我没有使用和链接前端和后端Access的经验。
有什么想法吗? 谢谢!
答案 0 :(得分:2)
您可能不希望听到这一点,但是如果您事先已经知道在一个月之后您将达到Access'大小限制,那么启动一个使用MS Access作为后端的项目并不是一个好主意。
你在评论中说:
由于以下原因,我坚持使用Access:1。SQL服务器的高成本。我不熟悉SQL服务器。 3. SQL server express(免费版)也有大小限制,但更大(10gb)。是否有其他DB免费且没有大小限制?还有其他免费的数据库
我同意您的观点,SQL Server在您的情况下不是一个好的解决方案 - 高价格和大小限制是针对SQL Server(完整版和Express Edition)的有效参数。
所以,在我看来,使用不同的数据库引擎是这里唯一真正的解决方案
你对SQL Server的第三个论点是“我不熟悉它”,但我强烈建议你变得熟悉另一个数据库引擎而不是Access,因为在你的情况下使用Access(大小限制!!从长远来看,这将是一种痛苦
(注意所有的挑剔者:不,我一般都不会抨击Access - 我自己就是以谋生为生。
但是,它有其局限性,当你事先知道你将在一个月内达到它的尺寸限制时,在这里使用它不是一个好主意。)
是的,你可以做一些黑客攻击并且每个月都使用不同的Access数据库,但是一旦用户需要一次加载几个月的数据,你就会感到很痛苦,或者一旦您的老板要求您“快速报告我们过去三年的销售情况”: - )
但您可以使用其他数据库引擎。是的,你必须花时间熟悉它,学习如何设置它等等 但请相信我,从长远来看它会得到回报,因为你不必每个月处理一个数据库文件的麻烦。
有许多免费且功能强大的数据库引擎,最着名的是:
答案 1 :(得分:1)
要连接到MS Access数据库,您可以使用显示here的代码,然后就可以“加入”C#前端的数据。
您最终可能会在C#中编写数据库引擎的子集,但我完全支持Bernard和Bryan提供的评论。
答案 2 :(得分:0)
您的数据库设计应该与您的前端技术决策隔离开来,反之亦然。见Multitier Architecture。
使用多层架构将帮助您将业务逻辑与数据访问分离,从而允许您以模块化和健壮的方式设计和实现这些组件。
搜索N层架构或多层架构将找到大量信息,并帮助您了解如何实施多层解决方案以及解决问题的原因。
答案 3 :(得分:0)