需要指导的最佳方式接近课程数据库
本文关键字:接近 数据库 方式 最佳 | 更新日期: 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
注意:这并不包括任何你想要包含的表标识或键信息。
除了减少课程表的大小,您还可以在课程之间重用关键字。
任何可能跨多个表重用数据的列都应该像这样规范化。(资源)?(关键问题)?等等…