一直以来有一个困惑,就是如果正确的使用面向对象的方式开发数据库的软件(如MIS,ERP等系统)。如果以面向对象的方式考虑设计,那么一切都为对象,那么要设计一套涉及到后台为大型数据库的系统时(如SQLServer, DB2),是否应将数据库中的内容(如每个报表)都设计成一个类呢?如果需要设计成一个类那么这个类除了会保存数据(表)的内容外,是否还要包括存取的方式(如增加、删除、编辑、查询等)呢?还是说将类理解成为一个结构体,只用来保存数据,而存取的方式由专门的类来完成操作。如果以上面的思路来理解问题,涉及到具体的语言----
如果用VC的话,如果用ADO的COM组件,我想应该将数据读到指定的类中;
如果用C#的话,使用ADO.NET的DataSet,我认为DataSet就是一个类了,但是在DataSet中却没有操作方式,这时就有如SqlAdapter等组件来完成操作;但是上面方式考虑的太少,因为只考虑到了一个表的数据到一个类中,而现在的大多数据库都为关系型数据库,不管项目有多大,基本上都有关系存在。以前我设计数据库项目时都是先从设计数据库(关系)开始,然后来设计类图,现在我不知道这样设计的方式是否正确,如果先设计数据库对设计类图势必会造成影响,因为设计的类图会从数据关系来思考;而从类图开始设计我又觉得无法保证数据库关系的完整性。说了这么多,我想表达的是如何才能设计一套合理的数据库系统,多年的工作习惯造成了我喜欢将数据库设计的功能多一些,如表关系、存储过程、存储过程中使用业务逻辑等,这种方式使我更多的以面向过程方式来考虑问题。说的有些乱,想到什么就写出来了,希望各位帮帮忙,讲讲你们是怎样考虑设计这样的项目的呢?
如果用VC的话,如果用ADO的COM组件,我想应该将数据读到指定的类中;
如果用C#的话,使用ADO.NET的DataSet,我认为DataSet就是一个类了,但是在DataSet中却没有操作方式,这时就有如SqlAdapter等组件来完成操作;但是上面方式考虑的太少,因为只考虑到了一个表的数据到一个类中,而现在的大多数据库都为关系型数据库,不管项目有多大,基本上都有关系存在。以前我设计数据库项目时都是先从设计数据库(关系)开始,然后来设计类图,现在我不知道这样设计的方式是否正确,如果先设计数据库对设计类图势必会造成影响,因为设计的类图会从数据关系来思考;而从类图开始设计我又觉得无法保证数据库关系的完整性。说了这么多,我想表达的是如何才能设计一套合理的数据库系统,多年的工作习惯造成了我喜欢将数据库设计的功能多一些,如表关系、存储过程、存储过程中使用业务逻辑等,这种方式使我更多的以面向过程方式来考虑问题。说的有些乱,想到什么就写出来了,希望各位帮帮忙,讲讲你们是怎样考虑设计这样的项目的呢?
解决方案 »
- WPF下System.Windows.Ink的手写识别可否达到工具栏中的tablet pc输入面板中的识别率?
- 想做个酒店管理,大约700个床位,有做过的吗?给点代码或者什么的参考一下。
- 求高手指导
- 编写的Windows Service怎样让系统或者防火墙信任(而不是手动在防火墙中添加信任列表)?
- Sql语句一对多的关系
- UDPCLIENT +线程
- asp.net里到底该用c#还是用javascript?
- GIF还有专利权吗?
- treeView和数据库相连问题?
- 在InstallShield 8.02中,怎么制作包含.Net框架的安装程序?
- 写一个form窗体渐变显示的方法!让一个窗体慢慢的显示出来!!
- 线程启动一个方法和直接启动方法有什么区别?
DB层与UI层之间的数据交互,考虑到不需要UI层不再做数据转化的操作,那么DB层应该提供自定义的数据结构变量;但是如此,UI层在做绑定操作的时候比较复杂性,因此DB层最好也能按照需求提供返回DataSet或者DataTable,DataView之类对象。
你说的也有道理
而现在的主流数据库 都是关系性的 关于使用面向对象的数据库设计方式方法????
我还真没听过
推荐一个C#学习网站 有站长在线答疑http://www.aspxwork.com用的是动网新闻。总体感觉还算不错。资料满全的。
最有特点的是有站长在线答疑。感觉满有特色的。
但是在数据量很大的情况下建议还是使用SQL。那东西会很大程度影响性能