最近看PetShop 对于他的数据访问层有些疑惑
它用各个类来对应表做数据载体
通过数据操作的对象对应操作 这些类的实例
可是它似乎太简单了 都是一一对应的
如果遇到复杂情况 怎么设计
比如有两个表 A ,B A中储存用户信息 有一个字段是用户类型 对应B表中一条数据
如果我要查询用户的信息 这些信息一部分来自A 一部分来自B
它用各个类来对应表做数据载体
通过数据操作的对象对应操作 这些类的实例
可是它似乎太简单了 都是一一对应的
如果遇到复杂情况 怎么设计
比如有两个表 A ,B A中储存用户信息 有一个字段是用户类型 对应B表中一条数据
如果我要查询用户的信息 这些信息一部分来自A 一部分来自B
数据载体设计成一个好 还是两个?
设计的时候是以 显示为准 还是以表为准?
To:9楼
你的意思是A继承B,还是一个C继承A,B 可是类不能继承多个类
我也倾向于这种设计方法。这种设计方法在实现数据库表格的“对象”的时候能够更好的理解成员之间的关系。
{
}class B
{
private A a;
}
所以,一切东西还是要活学学用,看实际情况,只要把握住大的方向就行了
petshop只是一个参考,并不是典范
最后想问以下 看过PetShop的朋友
它那样创建每个对象都执行一次查询
会不会有效率问题
为什么这么设计 怎么不一个查询循环创建
谢谢17楼 12:00结贴
但也熟悉一些框架,比如CastleActiveRecord我想你还没有深入看petshop
关于框架中的数据库操作model都有一下几种形式
一对一
一对多
多对多
比如:
ModelA
{
aid;
bid;//此id是外key
name;
ModelB modelb; //此句是所谓的一对一 将ModelB对应的数据表关联起来
IList modebs;//此句IList存放许多ModelB对象,是所谓的一对多关系
}ModelB
{
bid;
name;
}
看看这个应该就很明白了
CSDN怎么还不到5天不让结贴加分
谢谢了