【问题标题】:Database design for a tutorial web application教程 Web 应用程序的数据库设计
【发布时间】:2018-01-31 13:00:45
【问题描述】:

我们需要创建一个教程类型的应用程序,其中会有主题列表,每个主题都有子主题。 用户可以注册一个主题,并浏览子主题并将子主题标记为“已完成”。我们选择使用MySql 关系数据库。

所以。通常有 3 个主表,

  1. 用户
  2. 主题
  3. 子主题

我们计划继续采用这种方法,为“用户和主题”制作映射表,即“user_topics”,其中包含列为user_id , topic_id, is_enrolled 另一个跟踪子主题完成状态的映射表,可能是'user_sub_topics',其中包含user_idsub_topic_idtopic_idis_completed

这是设计数据库的最佳方式吗?还是可以做任何其他工作?

这是我们获取数据所需的几个查询

  1. 如果用户已完成所有子主题,主题列表将显示带有已完成标签的主题列表(加入查询会有所帮助)
  2. 主题详情页面也会显示已完成子主题的列表

请推荐

【问题讨论】:

    标签: mysql database-design relational-database


    【解决方案1】:

    首先,您必须通过查找实体之间的关系来设计此类关系数据库,并为此研究一下 ER 或扩展 ER 图(实体关系),然后将您的图转换为表格。

    有一个分步方法显示如何执行此操作,最后您可以检查表格的正常形式并检查它是否满足您的目的以及您的设计有多好。

    我强烈建议您Ramez Elmasri数据库系统基础,它将提供有关数据库设计的大量信息

    【讨论】:

      猜你喜欢
      • 2011-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-19
      • 1970-01-01
      • 1970-01-01
      • 2010-12-13
      相关资源
      最近更新 更多