问答系统model设计,请大牛点评下

1、首先使分类Category:


public class Category {
private String name;
}

简单期间先给个name,当然id每个model都有的,先省略掉了

2、问题标签类Tag:


public class Tag {

private String name;

private String description;

private int count;
}


3、用户类User:


public class User {

private String userName;

private int userScore;

private List<Answer> answers;

private List<Question> questions;
}

用户包含问过的问题和回答过别人的问题List

4、问题类Question:


public class Question {

private String title;

private String content;

private int score;

private int vote;

private int view;

private boolean solved;

private List<Answer> answers;

private User askUser;

private User editUser;

private Category category;

private List<Tag> tags;

private List<QuestionComment> questionComments;

private List<User> focusUsers;
}

这里类有几个疑问

1.浏览数怎么设计比较好呢?先放缓存,然后定时更新数据库的这个字段么?

2.answers遍历的时候,怎么把最佳答案放在最前面呢?然后只有遍历然后判断字段这样确定么?有没有其他好的办法,比如单独弄出来一个Answer成员变量,不

放在list里了。

5、回答类Answer:


public class Answer {

private String content;

private int vote;

private User answerer;

private User editUser;

private boolean bestAnswer;

private List<QuestionComment> questionComments;
}

6、评论Comment:


public class Comment {

private String content;

private User commentUser;
}

这个类的设计目的就是做一个跟so类似的,可以在问题和回答中添加内嵌的回复

请大牛们帮忙看下,这么设计model有没有什么问题,什么地方需要修改下?

由于画类图工具还没下载下来,先麻烦大家看下代码吧,等软件下载下来了,我再上类的关系图。
[该贴被mistbow于2013-04-12 16:54修改过]

同问。。。。。。。。。。

失血模型啊,没有对象的行为:

"好像很简单,但是这是面向对象吗?这是符合封装原则吗?这是贫血失血模型,对象只有属性,没有自己的行为方法,有的只有setter/getter方法而已。"
http://www.jdon.com/44815