【问题标题】:How can I design database for following requirements?如何设计数据库以满足以下要求?
【发布时间】:2020-05-26 18:44:23
【问题描述】:

我需要数据库设计方面的帮助。

项目描述:

  1. 我正在开发一个GRE词汇应用程序,其中有五个页面(所有单词列表,最喜欢的单词,混淆单词,常用单词,按类别的单词)。

  2. 所有单词列表包含可用的整个单词。例如。列表包含 1000 个单词。

  3. 收藏夹列表包含用户从所有单词中选择的单词。例如。 1000 个单词列表中的 200 个单词。

  4. 混淆词比较了管理员所有单词列表中的两个所需单词。例如。 Strive vs Strife,这两个词也在1000个词的列表中。

  5. 常用词包含管理员的所有词列表中的词。例如。完美、快乐等。

  6. 按类别分类的单词包含按类别分类的所有单词中的单词列表。例如。 “Happy”类别包含Elation、Ecstasy、Joy、Pleasure、Delight等。

【问题讨论】:

  • 请在您遇到问题的第一个地方准确地询问 1 个特定的非重复问题。请不要要求我们做您的(家庭)工作。你能做哪些部分?您的教科书或文档对任何相关内容有什么看法? “我需要帮助”不是问题。请参阅 How to Ask、其他 help center 链接、点击谷歌搜索“stackexchange 作业”和投票箭头鼠标悬停文本。

标签: mysql database sqlite database-design database-connection


【解决方案1】:

这是一个单用户应用程序吗?还是多个用户访问同一个数据库?这对第 3 项很重要。在这种情况下,您还需要什么来管理“用户”。并且“管理员”是一种“超级”用户形式,可以执行用户无法执行的某些维护操作吗?

一个词可以分为多个类别吗?也就是说,您需要 many:many 还是 1:many 映射?前者需要一张额外的桌子。

让我通过提供一种思考这个问题(以及一大类数据库设计问题)的方法来帮助您开始:

列出你拥有的“实体”:

  • 单词 -- 单词,是否“普通”等
  • 类别
  • 易混淆 -- 或许这与分类类似?
  • 用户

列出“关系”:

  • 词:类别
  • 用户:最喜欢的词

【讨论】:

  • 单用户和多用户是什么意思?有 400 名学生使用此应用程序,一名管理员添加了单词并管理其含义。正如我在问题中提到的,混淆词和类别是不同的。在令人困惑的单词中,有一个单词列表,其中两个单词看起来相似但含义不同,例如,“Strive and Strife, Contrite and Contrive”
  • @SunilTimilsina - 400 个“用户”中的每一个都有自己的“最喜欢的词”列表,但没有单独的“混淆词”列表?也就是说,设计在某些表中需要user_id,但在其他表中不需要。
  • 是的,只是喜欢的词对不同的用户来说是不同的。令人困惑的词,所有用户的类别都相似。
猜你喜欢
  • 1970-01-01
  • 2020-09-08
  • 2021-09-29
  • 1970-01-01
  • 2015-02-06
  • 1970-01-01
  • 1970-01-01
  • 2014-08-17
  • 1970-01-01
相关资源
最近更新 更多