表:类
在这里,className是唯一的
classId| className
-------|---------
1 | 1st Class
2 | 2nd Class
3 | 3rd Class
4 | 4th Class表:Subject表类中的主题可以有许多subjectName,但是类可以有唯一的subjectName
subjectId|classID |subjectName
---------|--------|----------
1 | 1 | English
2 | 1 | Maths
3 | 1 | Social
4 | 1 | Sports
5 | 2 | English
5 | 2 | Maths
5 | 2 | Social
5 | 2 | Sports表:课程
在Lesson表中,可以将许多经验添加到subjectID中
lessonId |classID | subjectID| lessonName
---------|--------|----------|------------
1 | 1 | 1 | Lesson 1 -The Art
2 | 1 | 1 | Lesson 2- The soup
3 | 1 | 2 | Lesson 1- Algebra
4 | 1 | 2 | Lesson 2 - Addittion我的问题是,是否应该在classID表中添加lesson,因为classID已经知道了,因为Subject表中有subjectID。在classID表中添加Lesson是否是冗余的?subjectID在**lesson**表中足够了吗?什么是好的练习?
表:录像
类似地,我有Video表,它与lessonID相关。用户可以通过选择课程添加多个视频。
videoId |lessonId |classId | subjectId| VideoName
---------|-------- |--------|----------| ----------我的问题在这里和课桌一样。videoID被引用到lessonID。在这里我们也应该添加classID和subjectID吗?因为通过lessonID,我们可以从Subject表中识别出subjectId,而通过subjectId,我们可以从类表中识别classID。在classID表中添加subjectId和video表是否是冗余的?
我问这个问题是为了最好的实践。
发布于 2020-09-27 19:24:38
冗余通常是不-不。尽量避免。
从“实体”的角度来思考你的宇宙。在数据库“表”中对实体建模。然后设计他们之间的“关系”。
你似乎有4门学科,而不是8门。
考虑4个类和4个主题之间的多对多映射表.
我不清楚课程的概念,相反,让我发展一下如何思考它:
Lessons表中拥有多少行。JOINing设置一个id到另一个表。也就是说,正如上面提到的,“关系”被建模为多个:多个或1:多。
一旦你完成了所有这些,“正常化”就没有什么可做了。
https://dba.stackexchange.com/questions/276146
复制相似问题