用C#编程时,我有一个学生实验成绩表要呈现,表格呈现形式如下,其中的实验名称,例如光学实验、声学实验.......作为列名,但这些列名不是程序设计阶段就已知的,是由用户在软件使用过程中动态添加的。即,该表,列的数量不定,列名不定。
我想,程序在数据库设计时,可以采取两种思路:
法1.动态建立成绩表,在数据库中直接存储上表的结构,最终界面的呈现形式与数据库表的存储形式一直。根据用户数据的实验项目名称,动态的在数据库中建立相应字段的成绩表,但缺点是,数据库的字段一旦动态变化,C#操作数据库的一些命令该如何动态变化?例如插入操作时,字段数量和字段名称都为变量。
法2.数据库表格设计时,设计两个表格,一个是学生成绩表,一个是实验项目表,将实验项目名称(如“光学实验”),变为行的一条记录。
这样一来,最后在C#呈现时的内容,就不是数据库中某个表格的直接呈现,需要联合查询。缺点是,学生人数较多时,对每个学生都要去查一遍成绩表,效率很低,会很慢。
由于基础薄弱,可能还有没考虑到的地方,不知道遇到类似问题,如何解决?请高手指点。
|
|