首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设计一个数据库,需要知道我是否做得对

设计一个数据库,需要知道我是否做得对
EN

Stack Overflow用户
提问于 2015-07-15 06:53:56
回答 1查看 66关注 0票数 0

我有一个网站,我正在为一个朋友的业务建设,我想知道如何去存储数据。到目前为止,我已经设计了这个图表。让我举一个例子:

假设在空手道比赛中有两个项目:搏击和形式。每一项赛事都有自己的分工: 4-6岁,8-10岁,等等.每个学生都可以报名参加任何一个或所有的活动。

我的问题是,下面的图像是否足以满足我刚才在示例中解释的,减去基数。

我的第二个问题是,实际的数据库是什么样子的?现在,我可以考虑添加以下表格:

  • 学生
  • 事件
  • 各分部
  • student_divisions (student_id,division_id)是对的吗?因为我需要能够为一个学生存储多个部门

谢谢,任何帮助我成为更好的设计师的建议都是有帮助的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-15 07:22:31

保持简单,让它变得有趣。

  • 失去"id“术语(使其为student_id、division_id或event_id),使用能够真正明确所标识的内容的术语。“名字”也是一样。那是student_name还是event_name?
  • 尽可能多地详细介绍每个学生(student_id,current_belt_ranking,date_of_birth (->年龄),student_name )。
  • 事件(event_name,division_id,date,location) (我会使key =event_name/除法对)或替换为“节省8-10”,"Forms_4-6“
  • 师(分区id,其他指示的东西)
  • 学生/事件表(student_id与事件名称/除法_id对匹配)

第一、第二、第三范式分析。

  • 第一范式(1NF):在通俗易懂的英语中,没有一行数据可以有重复的元素。记录类型的所有出现都必须包含相同数目的字段。例(你不会把某一学生报名参加的活动放在学生桌内。)把那些东西放在分开的桌子上。)
  • 第二范式(2NF):简单地说,一行中是否有仅依赖于连接主键的一部分的数据元素?如果是这样的话,将这些元素删除到一个额外的表中。(例:学生/事件表中不会有学生姓名、年龄和date_of_birth .)
  • 第三种范式(3NF):表的每个非素属性都非传递依赖于表的每个超键。当一个非键字段是关于另一个非键字段的事实时,就违反了3NF。(是的,就像这是否有意义?)坦白地说,我不能用你的example...Let给你提供这样的例子,我做一些研究.在您的系统中,我认为没有任何具有大量字段的表可以接近此违规行为。记住,3NF处理与其他非键字段相关的非键字段。)

试试看,然后构建你的查询,看看它们是否有意义?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31423400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档