对数据表操作: 函数参数类型抽象还是用多个重载函数

时间:2021-01-17 12:40:54
问题背景:对数据库3个表进行读取查询。三个表分别为sell( id, price, time, num);  buy( id, price, time, num);  store( id, sell, buy, total);

表类型为: sell( char, float, char, int); buy( char, float, char, int); store( char, int , int , int);

需求: 现在要添加一个函数进行对这三个表读取查询,因为这三个表本质是一样的,所以打算对他们的类型进行抽象,一个函数处理完。这个函数有三个传递参数;
showBuySellStore( T 指定已知字段, T 要查询的字段, wchar_t 指定表名)

问题:各位一般是用重载函数分别对不同的数据类型进行操作,还是数据抽象,全放在一个函数解决?

另外:有没有一些正规的数据抽象的开放源码的网站提供学习的?或者和这个数据表抽象封装相似的例子学习一下?

还有一个问题:前些日子想到对表格中的每个数据项进行抽象封装,因为数据库的操作只有查找,删除,添加。如果对这三个动作抽象封装,那么不管对于各类型的数据库管理系统来说,只要对这些封装的代码进行组合就可以在短时间内生成客户需要的各类型管理系统,因此想知道这个对数据项抽象封装的这个想法可不可行?谢谢提供帮助:)

5 个解决方案

#1


up

#2


这个我觉得一个函数肯定不好吧,因为是不同的动作,为什么要用相同的接口,这样很可能会到后来你要在接口里加很多的case语句来判断到底是调底层的哪个,就会导致这个函数的耦合性太强了。
加入用一个函数,现在Sell里我要加一项discount,这个……

#3


一般封装成一个函数,然后可以有一个参数 char* sql
sql参数就是你要访问的数据库的完整sql语句,调用函数前,先拼接sql语句,这样一个函数就可以了,封装成一个函数,管理也好管理,不然多个函数处理麻烦

对于数据库操作,一般可以分成一个函数,可以参考一些现有的数据库操作类
一般都是一个Execute(),这个函数既可以执行查询,增加,删除等多个数据库动作...

#4


对于数据库访问函数,它不需要关心表的结构等,它只需要知道执行数据库操作的sql语句就可以了
可以参考ADO中的RecortPtr的Execute()函数

#5


知道怎么回事了,谢谢

#1


up

#2


这个我觉得一个函数肯定不好吧,因为是不同的动作,为什么要用相同的接口,这样很可能会到后来你要在接口里加很多的case语句来判断到底是调底层的哪个,就会导致这个函数的耦合性太强了。
加入用一个函数,现在Sell里我要加一项discount,这个……

#3


一般封装成一个函数,然后可以有一个参数 char* sql
sql参数就是你要访问的数据库的完整sql语句,调用函数前,先拼接sql语句,这样一个函数就可以了,封装成一个函数,管理也好管理,不然多个函数处理麻烦

对于数据库操作,一般可以分成一个函数,可以参考一些现有的数据库操作类
一般都是一个Execute(),这个函数既可以执行查询,增加,删除等多个数据库动作...

#4


对于数据库访问函数,它不需要关心表的结构等,它只需要知道执行数据库操作的sql语句就可以了
可以参考ADO中的RecortPtr的Execute()函数

#5


知道怎么回事了,谢谢