【问题标题】:How to store user specific data in Mysql Database Table?如何在 Mysql 数据库表中存储用户特定的数据?
【发布时间】:2016-07-15 07:26:42
【问题描述】:

我有一个包含帖子、新闻、事件、投票等的 Android 应用程序

现在我想要的是让用户给上面的东西打分,1个用户只能给一个帖子打分一次。

那么我将如何存储数据,例如哪个帖子由哪些用户评分,以及我将如何将它们存储在表格单元格中。

我通过 Facebook 登录获得了唯一的用户 ID,而且我还为每个帖子提供了唯一的帖子 ID。

提前致谢

【问题讨论】:

  • post_ratings(user_id*,post_id*,rating) 其中 * = PRIMARY KEY 的组成部分
  • 是的,我已经找到了解决方案。感谢您的评论。
  • 我是 Mysql 新手,你能告诉我 PRIMARY KEY 是否也可以应用于 Varchar 吗?
  • 您应该能够自己解决这个问题 - 但我只存储一个 tinyint(0 或 1)

标签: android mysql database


【解决方案1】:

如果你想保持一致性,你需要将信息存储在服务器端(在客户端很容易打破这个限制)。

在这种情况下,您可以创建一个新表,其中用户 id 和帖子的 id 是主键,这样可以确保这些对是唯一的。

正如你所说的这些字段是 varchar,你会得到类似的东西:

CREATE TABLE rating_post ( userid VARCHAR(255), postid VARCHAR(255), rating TINYINT, PRIMARY KEY (userid, postid) )

【讨论】:

  • 好的,我知道了。你说一个字段是主键是什么意思?
  • 当字段为主键时,表示该字段不能为空,且值必须唯一。在这种情况下,唯一的是一对 userid,postid,也就是说,不允许有两行具有相同的 userid 和 postid 值(但只要 postid 不同,您就可以有重复的 userid,反之亦然)。
  • 没问题。伟大的! :)
猜你喜欢
  • 2022-12-13
  • 1970-01-01
  • 1970-01-01
  • 2011-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-11
  • 2016-03-21
相关资源
最近更新 更多