我有一个网站,我正在建立一个朋友的业务,我想知道如何存储数据。到目前为止,我已经设计了这个图。让我举个例子:
假设空手道锦标赛中有2个赛事:Sparring和Forms。每个赛事都有自己的分区:4到6岁的孩子,8-10岁的孩子,等等......每个学生都可以报名参加1场或者所有比赛。
我的问题是,下面的图片是否足以满足我在示例中解释的内容,减去基数。
我的第二个问题是,实际的数据库是什么样的?现在,我可以考虑添加以下表格:
谢谢,任何帮助我成为更好设计师的指示都会有所帮助。
答案 0 :(得分:2)
保持简单,让它变得有趣。
分析第一,第二,第三范式。
第一范式(1NF):在普通英语中,没有数据行可以包含重复元素。记录类型的所有出现必须包含相同数量的字段。 ex(你不会把给定学生的事件放在学生表中注册。把这些东西放在一个单独的表中。)
第二范式(2NF):简单来说,单行中是否有任何数据元素只依赖于连接主键的一部分?如果是这样,请将这些元素删除到另一个表中。 (例如:您在学生/活动表中没有学生姓名,年龄和日期_)<)>
第三范式(3NF):表的每个非素数属性都是非传递性依赖于表的每个超级键。当非关键字段是关于另一个非关键字段的事实时,违反了3NF。(是的,甚至是有意义的吗?坦率地说,我不能用你的例子为你提供这样的例子......让我做一些研究......对于你的系统,我不认为有任何表格有大量的字段甚至接近这个违规。记住3NF处理与其他非相关的非关键字段-key fields。)
试一试,然后构建您的查询,看看它们是否有意义?