java - 如何在MySQL中为每个用户存储多个数据

标签 java mysql database

我有包含用户和带有评级的文本的数据。我需要将其存储到数据库中。我使用 MySQL 作为数据库,并使用 java、IDE netbeans。存储这些后,我只需读取并插入新用户的数据。

User: a
Data: what are you doing, class: bad
      yes, this is me, class good
      how are you?, class bad

User: b
Data: what are you doing, class: good
      yes, this is me, class bad
      how are you?, class bad

如何将这些存储到 MySQL (Xampp) 或任何其他数据库可以做到这一点?谢谢您

最佳答案

您应该了解规范化。通过适当的规范化,您将至少有两个表:一个用户表和一个数据表。您的数据表将如下所示:

user      |      data          |  rating
_________________________________________
a         | What are you doing | bad
a         | yes, this is me    | good
a         | how are you?       | bad
b         | what are you doing | good
b         | yes, this is me    | bad
b         | how are you?       | bad

可选择实现的其他事项:

  1. 数据表还可以有一个唯一的(自动增量)ID 用作主键
  2. 您可以使用其他用户信息(例如名字、姓氏等)创建用户表。此处的主键(a、b)将链接到数据表中的外键。我在这里使用 a、b,因为这就是您所使用的,但如果它们当前没有用户 ID,您也可以使用 auto_increment 字段。

如果所有用户都具有完全相同的短语(或许多相同的短语),那么更好的结构是使用三个表:用户表、短语表和评级表。

在这种情况下,短语表将如下所示:

phrase_id |      phrase
________________________________
1         | What are you doing
2         | yes, this is me
3         | how are you?

并且评级表将包含 user_id 和phrase_id 的复合主键,这两者都是对用户和短语表的外键引用。这将使您的评级表如下所示:

user_id | phrase_id |  rating
_________________________________________
a       | 1         | bad
a       | 2         | good
a       | 3         | bad
b       | 1         | good
b       | 2         | bad
b       | 3         | bad

关于java - 如何在MySQL中为每个用户存储多个数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30823998/

相关文章:

java - 映射字符串数组

java - 当用户输入错误的输入时,我不知道如何重新启动循环

java - 如何使用lambda表达式调用foreach的方法

python - "Warning: Out of range value for column"将日期时间值插入 MySQL

php - Bootstrap 模态确认删除

mysql - atk4 数据库表 ID

java - java如何支持java枚举常量的实例变量?

php - 将多个选择从下拉列表存储到数据库的最佳方法是什么?

database - 数据库的选择

MySQL自动按周分区