当前位置: 首页 > 面试题库 >

使用“主题标签”的应用程序的数据库设计

壤驷承
2023-03-14
问题内容

数据库设计问题在这里。

假设我们有一个webapp或使用#标签处理20-40个字词的东西。存储用户主题标签的最佳方法是什么。

例如,如果用户输入。`”I like to have #lunch at

还值得指出的是,这些标签必须是可搜索的,例如有多少人对午餐进行了哈希标签等等。

在这个问题上的建议会很棒,在将可变大小的输入存储在mysql中时,我总是有些困惑。每个音符可以有无限数量的主题标签,最好的存储方式是什么?


问题答案:

我建议在消息和标签之间使用典型的多对多关系。

那意味着您需要3张桌子。

  • Messages(列IdUserIdContent
  • Tags(列IdTagName
  • TagMessageRelations(列:MessageIdTagId-在消息和标签之间建立连接-通过指向Messages.Id/的外键Tags.Id

这样,您不必多次存储标签,而仅创建与消息的新关系(当然,如果该标签已存在于标签表中)。

这样你可以

  • 轻松 计算多少标签SELECT COUNT(*) FROM Tags
  • 每个标签仅保存一次 ,搜索标签即可轻松建立索引
  • 计算 每个用户 使用某个标签的 次数-例如:

SELECT COUNT(*) FROM Tags INNER JOIN TagMessageRelations ON Tags.Id = TagMessageRelations.TagId INNER JOIN Messages ON TagMessageRelations.MessageId = Messages.Id GROUP BY Messages.UserId



 类似资料:
  • 我想让我的应用程序提供选项有黑暗主题和浅色主题给用户,应用程序的主题将成为什么用户选择。 我如何用Android Jetpack Compose实现这一点? 我一直在浏览应用主题化的Android codelabs,发现了以下代码片段: 但是上面的代码是用来改变“系统”主题对应的主题,而不是用户在应用程序中选择什么。

  • 本文向大家介绍数据库设计的主要问题,包括了数据库设计的主要问题的使用技巧和注意事项,需要的朋友参考一下 数据库设计可能是一项艰巨的任务,您需要遵循以下方法并应对挑战,才能获得设计良好的数据库。 数据库设计的关注点和挑战如下: 遵循设计标准 在设计数据库时考虑设计标准非常重要。它为您提供了定义明确的组件。这样,您还可以轻松评估现有设计。 如果您无法遵循设计标准方法,那么不要指望设计是正确的,并且您将

  • Weblogic是否有任何免费可用的应用程序(war文件),其中应用程序使用某种数据库? 如果这不是正确的地方,请将我重定向到正确的地方问这个问题。

  • 问题内容: 这可能是一个非常琐碎的问题,但是我很难找到答案: 使用Google Eclipse插件,我想开发一个简单的旧Java应用程序(而不是Web应用程序),该应用程序使用AppEngine进行云存储。 为此,我当然可以简单地创建两个项目,一个包含AppEngine服务器,另一个包含Java应用程序。 但是我想知道是否有可能在Eclipse中设置一个包含服务器和客户端代码的单个项目(例如GWT

  • 是否可以在不安装SQL Server的情况下在客户端计算机中安装应用程序? 在部署应用程序时可以包含数据库吗? 如果在部署时已在系统必备组件中选中SQL Server,是否可以在客户端的计算机上安装?