Java 在MySQL中设计两个表以用于JPA
我想设计两个表如下,我的问题是,如果这个设计是正确的 表tweet:tweet_id,。。。 tweet表需要0..*hashtags->table hashtags:hashtag\u id,tweet\u id,hashtag 我想在JPA中使用它们,所以我认为这两个表都需要主键Java 在MySQL中设计两个表以用于JPA,java,mysql,jpa,orm,relational-database,Java,Mysql,Jpa,Orm,Relational Database,我想设计两个表如下,我的问题是,如果这个设计是正确的 表tweet:tweet_id,。。。 tweet表需要0..*hashtags->table hashtags:hashtag\u id,tweet\u id,hashtag 我想在JPA中使用它们,所以我认为这两个表都需要主键 提前谢谢你是的,这是正确的:tweet和hashtags之间存在一对多关系。实际上,如果你想要一个完全规范化的模式,你不应该让hashtag的文本在许多tweet上重复多次 换句话说,您应该有3个表: Tweet
提前谢谢你是的,这是正确的:tweet和hashtags之间存在一对多关系。实际上,如果你想要一个完全规范化的模式,你不应该让hashtag的文本在许多tweet上重复多次 换句话说,您应该有3个表:
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有很多tweet\u标签,而一个标签有很多tweet\u标签
tweet和hashtag之间存在多对多关系
然而,在现实世界中,不太可能创建单独的hashtag表,因为它们在Twitter中的使用仅限于139个字符,并且创建(全局)唯一的ID系统将是困难的。所以一个标签的文本很可能被用作它的唯一键