Каков наилучший способ сохранить статус объекта комментария? - PullRequest
0 голосов
/ 28 ноября 2011

У меня есть какое-то веб-приложение для размещения на внешних сайтах.Это приложение является виджетом для комментариев, таких как disqus (disqus.com).

Каждый комментарий - это объект-сущность с полями: «автор», «тело», «время» и т. Д. В дополнение к этим полям комментарийУ объекта есть поле с именем «active» То есть:

@Entity
class Comment {

    private User author;

    private String body;

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

    private boolean active;
}

Поле «active», используемое для разделения активных и удаленных комментариев.Если "active" == false, комментарий удаляется, если нет, он активен.

Очень скоро я представлю функционал, который позволяет проводить предварительную модерацию комментариев.То есть пользователь публикует комментарий, но до тех пор, пока администратор не одобрил его, комментарий все еще не активен.

Так что вопрос в том, как лучше всего это сделать?

Я вижу два пути:

1) Измените «активное» поле с логического на int и сохраните состояние комментария,

, например: 0 - премодерация, 1 - активно (утверждено), -1 удалено, -2не одобрено может быть что-то еще ...

2) Оставьте "активное" логическое поле и добавьте дополнительное поле для статуса

1 Ответ

2 голосов
/ 28 ноября 2011

Почему int - почему не enum?

enum CommentStatus {
    Deleted, Pending, Active
}

Редактировать: Кроме того, постарайтесь не разбрасывать свои enum повсюду.Используйте свой класс Comment в качестве надежной модели, добавьте функции для isActive() или isPending() - используете ли вы одно или два поля или используете enum или int, это детали реализации.Спрячь эту шипение, йо.

...