Database 将数据互连到较低数据库查询的最佳方法[通用,无特定语言]

Database 将数据互连到较低数据库查询的最佳方法[通用,无特定语言],database,Database,我正在制作一个接收和发送图像的机器人,我必须跟踪图像发送给谁,所以它只发送一次。用户还可以将图像标记为不适用 我制作了一个包含两个表的db: 具有userID和userName的userTable 带有imgID、文件名、fileCRC的imageTable 我只能想到: a)将viewedBy添加到imageTable“user1、user213、user9” 或 b)将imageToView添加到用户表“12354521321654565” 但是如果我这样做,[a]存在一个问题,即用户查

我正在制作一个接收和发送图像的机器人,我必须跟踪图像发送给谁,所以它只发送一次。用户还可以将图像标记为不适用

我制作了一个包含两个表的db:

  • 具有userID和userName的userTable
  • 带有imgID、文件名、fileCRC的imageTable
我只能想到:

a)将viewedBy添加到imageTable“user1、user213、user9”

b)将imageToView添加到用户表“12354521321654565”

但是如果我这样做,[a]存在一个问题,即用户查看的图像越多,获得一张随机图像所需的时间就越多

如果我做了[b],我已经有一个看不见的图像列表,所以我可以从这里随机选择一个,然后删除id。但是如果一个用户将其标记为不合适,我必须循环/删除数据库中所有用户的id


有更好的方法吗?

您需要一个中间表来跟踪哪个用户看到了哪个图像。因此,基本上,这个新表,我们称之为imageByUser,将包含一个用户id、一个图像id、一个不合适的布尔标志、dateseen datetime(可选,但从长远来看很有用)和一个生成的主键(或者您可以将用户、图像和dateseen的组合作为复合逻辑主键)


拥有第三个表可以解决所有问题,因为当有人看到图像时,您只需添加一个新行。此外,如果他们将其标记为“不合适”,那么您所要做的就是将“不合适”标志更新为“是”。这样,您甚至可以跟踪用户碰巧看到同一图像两次的情况(只需向表中添加另一行)

阅读已出版的信息建模与数据库设计学术教科书的时间可能重复。(记录和使用设计的语言和工具手册不是信息建模和数据库设计的教科书。)PS关系型和非关系型数据库管理系统之间有着巨大的差异。没有“通用”数据库。您看到的意思是“通用关系数据库”。请澄清。(显然)这是一个常见问题。在考虑发帖之前,请总是用谷歌搜索你的错误信息或你的问题/问题/目标的许多清晰、简洁和准确的措辞,有没有你的特定字符串/名称,并阅读许多答案。如果你发布一个问题,用一句话作为标题。请参见文本上方的投票箭头(&S)。