我正在使用Java创建一个博客应用程序。我是手动设置Id还是在Mysql数据库中自动生成Id?

我正在使用Java创建一个博客应用程序。我是手动设置Id还是在Mysql数据库中自动生成Id?,java,mysql,spring-boot,Java,Mysql,Spring Boot,我看到大多数人建议说让DB生成ID。那么我如何访问帖子?比方说,我点击按钮删除一条评论,现在,我怎么知道这条评论属于哪个帖子id public interface PostService { Long createPost(String title, String content, List categories, Date publishing_date); Long createComment(String author, String content, Date submi

我看到大多数人建议说让DB生成ID。那么我如何访问帖子?比方说,我点击按钮删除一条评论,现在,我怎么知道这条评论属于哪个帖子id

public interface PostService {
    Long createPost(String title, String content, List categories, Date publishing_date);
    Long createComment(String author, String content, Date submission_date);
    List getAllPosts();
    List getAllCommentsOn(Long post);
    boolean existPost(Long post);
}

这不是强制性的,但我建议您使用
自动递增
列,并将其设置为
主键
。这有助于手动维护主列和唯一列,并加快SELECT查询的速度,因为
主键
索引。

我会让它自动生成。然后查询“评论最多的帖子”

“按评论从发布顺序中选择*说明限制1”


然后用ID获取它。

我更喜欢DB来生成它。您可以修改createComment方法以接受

public interface PostService {
    Long createPost(String title, String content, List categories, Date publishing_date);
    Long createComment(Long postId,String author, String content, Date submission_date);
    List getAllPosts();
    List getAllCommentsOn(Long post);
    boolean existPost(Long post);
}

当有人在特定帖子上添加评论时,你应该至少在隐藏字段中有帖子id。

使用带有
自动增量的主键来自动分配数字id。基于字段/属性的检索仅通过在其他列周围进行选择即可完成。e、 g.
选择foo.*。。。。其中foo.my_column='bar'
你是什么意思?您可以在不知道id的情况下访问数据库中的任何内容?(除了不能按id查询之外)。但是,您可以使用一个字段,该字段的列的名称与大多数已发表评论的文章的名称相同,并且查询时应牢记这一点,即返回该列中具有最高值的文章。id是您遇到的问题最少的。你找不到评论最多的帖子。您必须了解SQL、关系数据库和联接。
大多数评论文章
就是一个例子。我有不同的场景,例如获取每个帖子的评论和删除特定帖子的评论。因此,我需要一个唯一的id始终正确吗?
大多数评论文章
就是一个例子。我有不同的场景,例如获取每个帖子的评论和删除特定帖子的评论。因此,我需要一个唯一的id,对吗?是的,但不总是,你可以删除所有没有评论的帖子,例如-为此,你不需要id。但要删除一个特定的帖子,你需要先获得id,这可以通过选择来实现。附加您的数据库模式并要求提供一个示例。使用select,它将选择所有行以获取id?那么“limit 1”将返回一个元素。然后你需要处理多篇文章的评论数相同的情况——这取决于你的业务逻辑,我想你误解了。比方说,我点击按钮删除一条评论,现在,我怎么知道这条评论属于哪个帖子id?