database-design - 这个 ER Digram 中的关系是否正确?
问题描述
我正在创建一个 ER 图来捕获以下内容:
- 一个用户可能属于一个或多个组
- 一个 GROUP 必须有一个或多个 USER
- 一个小组可能有一个或多个活动类型
- 用户可以参加一种或多种锻炼类型
- 用户在某个日期为某项锻炼类型获得了 REPS 次数
任何帮助将不胜感激:)
解决方案
你有正确的想法,但我认为你错过了两件事。
应使用 EXERCISE 表来保存练习的综合数据。它应该具有 EXERCISE TYPE、REPS 和 DATE 列,其中 EXERCISE TYPE 是 EXERCISE TYPE 表的外键。
USER 和 GROUP 之间的关系是多对多的。这应该通过一个关联(中间)表来消除,您可以调用 MEMBERSHIP 来存储每个单独的组成员资格。那么关系应该是
USER 1..n MEMBERSHIP n..1 GROUP
。
这些变化将使结构正常化。我强烈建议阅读有关标准化阶段的内容。知道如何规范化数据库以及停止在哪个阶段是非常宝贵的。
推荐阅读
- kotlin - 请向我解释这个 kotlin 声明?
- selenium - Selenium Webdriver:为什么它不能找到某个类的所有 HTML 元素?
- html - 当我将 CSS 文件上传到我的网站时,网站忽略了我的 h3 标签的所有样式选项
- ios - Swift - 如何更新自定义 MKAnnotation 标注中的数据?
- reactjs - React 中 .then 和 async/await 之间的区别
- python - 带有值检查的生成器表达式
- swift - 缺少自动布局的 Xcode 11 pin 菜单(在 Main.storyboard 下)-仅在此项目上
- express - 大于 ~7mb 的文件会抛出“未收到响应”。在 IBM Watson Speech-To-Text 异步 createJob 调用上
- ios - 关闭wifi时swift firebase onDisconnectRemoveValue不会触发
- javascript - 禁用特定列的 location.href