保持评论对象状态的最佳方法是什么?

时间:2011-11-28 18:32:40

标签: java database hibernate entity comments

我有一些网络应用程序可以放置在外部网站上。此应用程序是disqus(disqus.com)等评论的小部件。

每个评论都是一个具有字段的实体对象:“作​​者”,“正文”,“时间”等。 除了这些字段外,comment object还包含名为“active”的字段 那就是:

@Entity
class Comment {

    private User author;

    private String body;

    //... and a lot of many other attributes

    private boolean active;
}

用于分隔有效和已删除评论的“有效”字段。 如果“active”== false,则删除注释,如果没有激活注释。

很快我将介绍一种功能,允许预先审核评论。 即用户发布评论,但在管理员未批准之前,评论仍未激活。

所以问题是最好的方法是什么?

我看到两种方式:

1)将“active”字段从boolean更改为int并保持comment的状态

例如:0 - 预审,1 - 有效(已批准), - 1已删除, - 2未经批准可能是其他事情......

2)保留“active”布尔字段并为状态

添加其他字段

1 个答案:

答案 0 :(得分:2)

为什么选择int - 为什么不是enum

enum CommentStatus {
    Deleted, Pending, Active
}

编辑:另外,尽量不要将enum分散到整个地方。使用Comment类作为健壮的模型,添加isActive()isPending()的函数 - 无论是使用一个还是两个字段,还是使用枚举或int,这都是实现细节。隐藏那种嘶嘶声,哟。