F fee Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-29 #1 我需要设计一段程序来记录学生的应考科目,补考科目,但科目的 长度不一样,有的是三门,有的是两门, 请问如何设计数据结构及程序?
G gxg8816 Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-29 #2 四个表:学生表,科目表,应考学生及科目,补考学生及科目表 学生表: s_id,s_name,.... 科目表:item_id,item_name,.... 应考学生及科目:s_id,item_id,..... 补考学生及科目:s_id,item_id,..... 后两个表可合并,加一个标志.
四个表:学生表,科目表,应考学生及科目,补考学生及科目表 学生表: s_id,s_name,.... 科目表:item_id,item_name,.... 应考学生及科目:s_id,item_id,..... 补考学生及科目:s_id,item_id,..... 后两个表可合并,加一个标志.
C cAkk Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-29 #3 这样行不行: 补考科目表结构: 姓名 科目 ============== cAkk 语文 fee 语文 fee 计算机 cAkk 算术 cAkk 计算机 得到cAkk需要补考科目: select 科目 from 补考科目表 where 姓名='cAkk'
这样行不行: 补考科目表结构: 姓名 科目 ============== cAkk 语文 fee 语文 fee 计算机 cAkk 算术 cAkk 计算机 得到cAkk需要补考科目: select 科目 from 补考科目表 where 姓名='cAkk'
F fee Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-29 #4 我觉得GXG8816的方法不错,我是这样的: 1,首先将某考生的补考科目用tMEMO记录下来, 2。再fieldbyname('补考科目').asinteger:=memo1.text; 但在DBGRID中显示的记录含有||符号,如 语文||数学|| 政治等, 如果,又想就用这些记录,应该如何滤除符号,及还应当注意些啥?
我觉得GXG8816的方法不错,我是这样的: 1,首先将某考生的补考科目用tMEMO记录下来, 2。再fieldbyname('补考科目').asinteger:=memo1.text; 但在DBGRID中显示的记录含有||符号,如 语文||数学|| 政治等, 如果,又想就用这些记录,应该如何滤除符号,及还应当注意些啥?
G gxg8816 Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-29 #5 注意:后两个表只存储学生编号和科目标号,名称是显示时用查询连接出来的. 至于你现在的记录,可用相应的数据库操作.(比如查找,替换) 做数据库应用系统,库结构很重要,影响到所有功能的设计.库结构要严格遵守关系数据库的第三范式,避免数据冗余.
注意:后两个表只存储学生编号和科目标号,名称是显示时用查询连接出来的. 至于你现在的记录,可用相应的数据库操作.(比如查找,替换) 做数据库应用系统,库结构很重要,影响到所有功能的设计.库结构要严格遵守关系数据库的第三范式,避免数据冗余.
N nhes Unregistered / Unconfirmed GUEST, unregistred user! 2000-03-01 #6 你的问题是典型的数据库设计的范式问题,如果采用你的方法,确实存在很大的问题, 比如说,对某个学生的应考科目的查询,统计,增加,删除,修改,gxg8816的数据库设计 就很容易应付,但在你的设计中就很难处理,这就是不同范式存在的差别。 由于你的数据是1:n的,所以,数据库也要是1:n的。即1个学生对应n个科目。 至于科目表和学生表,也应该存在,否则也会存在数据增删改异常的问题。 当然,如果程序很小,以上两个表可以不要,直接在学生和科目表中存放学生和科目信息。 再简化,就作一个足够大的科目表,满足1nf 姓名 科目 成绩 科目 成绩..... 科目 成绩 nhes 语文 100 数学 0 ..... 英语 70 可是这种1:n关系处理起来就太糟糕了。
你的问题是典型的数据库设计的范式问题,如果采用你的方法,确实存在很大的问题, 比如说,对某个学生的应考科目的查询,统计,增加,删除,修改,gxg8816的数据库设计 就很容易应付,但在你的设计中就很难处理,这就是不同范式存在的差别。 由于你的数据是1:n的,所以,数据库也要是1:n的。即1个学生对应n个科目。 至于科目表和学生表,也应该存在,否则也会存在数据增删改异常的问题。 当然,如果程序很小,以上两个表可以不要,直接在学生和科目表中存放学生和科目信息。 再简化,就作一个足够大的科目表,满足1nf 姓名 科目 成绩 科目 成绩..... 科目 成绩 nhes 语文 100 数学 0 ..... 英语 70 可是这种1:n关系处理起来就太糟糕了。