在 MySQL 中设计两个表以在 JPA 中使用

Designing two tables in MySQL to use in JPA

我想设计两个table如下,请问这样设计是否正确

table 推文:tweet_id,... tweet table 需要 0..* 话题标签 -> table 话题标签:hashtag_id,tweet_id,hashtag

我想在 JPA 中使用它们,所以我认为两个 table 都需要主键。

提前致谢

是的,这是正确的:推文和主题标签之间存在一对多关系。

实际上,如果您想要一个完全规范化的模式,您不应该让主题标签的文本在许多推文中重复多次。

换句话说,你应该有 3 tables:

Tweet table
    tweet_id
    tweet_text

Tweet_Hashtag table (this is purely a join table)
    tweet_id
    hashtag_id

Hashtag table
    hashtag_id
    hashtag_text

所以一条推文有很多 tweet_hashtag 个,一个话题标签有很多 tweet_hashtag 个。

tweet 和 hashtag 之间是多对多的关系。

然而,在现实世界中,不太可能创建单独的标签 table,因为它们在 Twitter 中的使用限制为 139 个字符,并且创建(全球)唯一 ID 系统将是难的。因此,主题标签的文本无论如何都可能被用作唯一键。