У меня есть какое-то веб-приложение для размещения на внешних сайтах.Это приложение представляет собой виджет для комментариев, таких как disqus (disqus.com).
В приложении каждый виджет - это объект-сущность с большим количеством атрибутов.Например:
@Entity
class Widget {
private User admin; //same as owner, administrator, creator
private String site; //example.com
private String providers; //google_plus,facebook,twitter,lastfm and others
//... and a lot of many other attributes
}
На данный момент я разрабатываю список плохих слов.Этим списком будет управлять виджет администратора (владелец).
Для этой задачи у меня есть два способа реализации:
Первый способ:
@Entity
class Widget {
...
@ElementCollection(fetch = FetchType.LAZY)
@Column(name = "bad_words", length = 20)
private Set<String> badWords= new HashSet<String>();
...
}
, то есть сохранитькак отношение во второй таблице
Второй способ:
@Entity
class Widget {
...
@Column(name = "bad_words", length = 2000)
private String badWords;
...
}
, то есть сохранить в виде строки со словами, разделенными каким-либо разделителем, например: "fukc, azz, shitt, ..."
Итак, вопрос в том, как лучше всего хранить плохие слова в каждой сущности виджета?Случай 1, 2 или что-то еще?