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

13-04-12 mistbow
    

1、首先使分类Category:

public class Category {
	private String name;
}
<p>

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

2、问题标签类Tag:

public class Tag {

	private String name;
	
	private String description;
	
	private int count;
}
<p>

3、用户类User:

public class User {

	private String userName;

	private int userScore;

	private List<Answer> answers;

	private List<Question> questions;
}
<p>

用户包含问过的问题和回答过别人的问题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里了。

<p>

5、回答类Answer:

public class Answer {

	private String content;
	
	private int vote;
	
	private User answerer;
	
	private User editUser;
	
	private boolean bestAnswer;
	
	private List<QuestionComment> questionComments;
}
<p>

6、评论Comment:

public class Comment {

	private String content;
	
	private User commentUser;
}
<p>

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

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

由于画类图工具还没下载下来,先麻烦大家看下代码吧,等软件下载下来了,我再上类的关系图。

[该贴被mistbow于2013-04-12 16:54修改过]

    

lostalien
2013-04-15 13:24

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

banq
2013-04-15 13:39

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

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

http://www.jdon.com/44815