gpt4 book ai didi

java - 将坏词保留到数据库实体中的最佳方法是什么?

转载 作者:搜寻专家 更新时间:2023-10-30 23:19:39 24 4
gpt4 key购买 nike

我有一些要放置在外部站点上的 Web 应用程序。此应用程序是一个用于评论的小部件,例如 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 或其他情况?

最佳答案

绝对是选项 1。选项 2 违反了 First Normal Form .

考虑在第二种方式中讨论将所有单词连接起来。查询表会出现很多困难。此外,还会出现许多用于更新/删除/添加单词的糟糕代码。你不想要这些。

将所有单词放在一个集合中(第一种方式)将允许轻松查询它们并使所有 CRUD 操作更简单。

关于java - 将坏词保留到数据库实体中的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8083880/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com