需要指导的最佳方式接近课程数据库

本文关键字:接近 数据库 方式 最佳 | 更新日期: 2023-09-27 18:08:41

我正在制作课程地图。每学期(4个学期)、每门学科(约16门)、整个学年(11年)的计划信息。

共704个计划,每个计划最多包含约12000个字符。

我这样做是为了给每个计划中的信息一个例子:

[Course ID] INT NULL, 
[Course Name] VARCHAR(50) NOT NULL, 
[Year] NCHAR(2) NOT NULL, 
[Bimester] INT NOT NULL, 
[Total Hours] INT NOT NULL, 
[Topic] VARCHAR(100) NOT NULL, 
[Central Idea] VARCHAR(100) NOT NULL, 
[Concepts] VARCHAR(300) NOT NULL, 
[Skills] VARCHAR(300) NOT NULL, 
[Knowledge] VARCHAR(300) NOT NULL, 
[Attitudes] VARCHAR(300) NOT NULL, 
[Key Questions] VARCHAR(800) NOT NULL, 
[Key Words] VARCHAR(700) NOT NULL, 
[Tuning in Activities] VARCHAR(700) NOT NULL, 
[Summary Activities] VARCHAR(700) NOT NULL, 
[Action Project] VARCHAR(200) NOT NULL,
[Assessment Opportunities] VARCHAR(400) NOT NULL, 
[Self Assessment] VARCHAR(400) NOT NULL, 
[Week 1] VARCHAR(700) NOT NULL, 
[Week 2] VARCHAR(700) NOT NULL, 
[Week 3] VARCHAR(700) NOT NULL, 
[Week 4] VARCHAR(700) NOT NULL, 
[Week 5] VARCHAR(700) NOT NULL, 
[Week 6] VARCHAR(700) NOT NULL, 
[Week 7] VARCHAR(700) NOT NULL, 
[Week 8] VARCHAR(700) NOT NULL, 
[Week 9] VARCHAR(700) NULL, 
[Resources] VARCHAR(2000) NOT NULL, 
[Teacher Reflections] VARCHAR(1000) NULL, 
[Student Reflections] VARCHAR(1000) NULL,

显然它达到了8060字节的表行大小限制。

我还需要能够在计划中搜索关键字。输入"water",查看有多少门课是关于水的。

从什么角度看这个最好?

需要指导的最佳方式接近课程数据库

规范化你的数据,这应该有助于这里,并减少你的整体数据库大小。

为关键字创建一个单独的表,并在Course表和Keyword表之间创建一个连接表,即

Keyword table
[KeywordId] INT NOT NULL,
[Keyword] NVARCHAR(max_size_of_keyword)
CoureKeyword table
[CourseKeywordId] INT NOT NULL,
[CourseId] INT NOT NULL,
[KeywordId] INT NOT NULL

注意:这并不包括任何你想要包含的表标识或键信息。
除了减少课程表的大小,您还可以在课程之间重用关键字。

任何可能跨多个表重用数据的列都应该像这样规范化。(资源)?(关键问题)?等等…