您的位置:程序门 -> .net技术 -> c#



关于有关系的实体类的设计问题,请教大家


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


关于有关系的实体类的设计问题,请教大家[已结贴,结贴人:iambm]
发表于:2007-03-04 13:07:52 楼主
一、应用场景:
系统中有3个实体类(为描述简单起见,直接公开字段,同时省略了其他次要字段。都是纯实体类,不包含crud等方法):
//   学生
public   class   student
{
public   int   id;
public   string   code; //   学号
public   string   name; //   姓名

public   list <score>   scores; //   学生所学课程的成绩列表
}

//   课程
public   class   course
{
public   int   id;
public   string   code; //   课程代码
public   name; //课程名

public   list <score>   scores; //   学习这门课程的所有学生的成绩
}

//   成绩
public   class   score
{
public   int   id;
public   student   student; //   学生
public   course   course; //   课程
public   double   mark; //   得分
}
关于数据库表,大家可以推测出来。score表中记录的是studentid、courseid。

二、问题
希望获取学生对象后可以操作他的成绩,所以student类中有public   list <score>   score;
希望获取成绩对象后可以操作相关的学生对象,并且一个score实例可以被方便的持久化,所以score类中持有student、course实例。

这样设计类会不会有问题,比如会不会出现循环加载以至堆栈溢出,或者同一条记录被创建多个对象。

象类似的应用场景,我想大家也会经历过。大家是怎样解决的。希望给一个好的解决办法,或者谈谈你的建议。谢谢。
发表于:2007-03-04 13:26:011楼 得分:0
关注,我最近想学习这些。
发表于:2007-03-04 15:37:362楼 得分:100
避免使student类里面有score这样的对象属性.使用上层观察机制提供数据,底层实体类只提供基本数据.

我是这么做的,好处太多啦,你问的问题基本上都不是问题了.
发表于:2007-03-04 16:59:413楼 得分:0
student实体会被远程请求,所以在其中加了scores。因为不希望客户端发出两次调用。
发表于:2007-03-04 17:39:244楼 得分:0
帮lz顶
发表于:2007-03-06 16:15:135楼 得分:0
?
发表于:2007-03-06 16:16:076楼 得分:0
帮顶


快速检索

最新资讯
热门点击