———高手赐教阿 !———————— http://expert.csdn.net/Expert/topic/1923/1923316.xml?temp=.3946802 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这样的系统,实在太多了,以前团体做过一个,有点难用.可以用多个表,用join left进行链接的. 我想大家没有明确我的意思,请先看看下面的数据表在数据表中 值得注意的是 第一行 和 第一列 因为,他们是需要根据其他表的变动而变动,也就是他们都是灵活的。1.一个数据表中存放一次成绩,那么有很多班级,很多次成绩的话,这个将会造成数据库管理混乱(数据表过多,如果20个班级10次考试成绩就有200个数据表。),特别是当用户使用的是虚拟主机的时候,他仅有的一个数据库却要创建n多的表,本人就觉得难已管理,以及造成数据库混乱。2.如果将所有班级各次的成绩存放在一个数据库表中,这样一来,我们就很难确定数据表中固定的字段了。比如第一行中的学科,这个就很难搞定了班级不用的学生,他的考试科目个有不同,并且各个学生的考试科目都是根据成绩登录前,当前班级科目而定的。这样好难处理,唯一的做法就是将这个数据以班级为单位,创建成一个数组,存放在text字段里。但是这样以来呢,对以后学生成绩的数据分析很不利,也散失了数据库高效的查询效率。对此我感到很郁闷,不知道怎么设计好这个数据库?请赐教!!!谢谢/ 感谢您认真的阅读该贴以及您的答复。!!!————————————————————————————————————————————————————————————学号|姓名|语文|高数|工程数学|英语|电工|计算机组成原理|网络|VB|C语言程序设计|汇编语言|数据库| ....... 数据可增加2003061115|方海|-|-|7|465|797|77|99|797|7|797|8| ....... 数据可增加2003061116|罗静|-|-|-|87|97|7|7997|-|79|788|-| ....... 数据可增加2003061117|温华|-|-|-|78|68|7|-|8|9|8|89| ....... 数据可增加2003061118|曾英|-|-|-|-|78|797|979|-|9797|9|6| ....... 数据可增加2003061119|蔡蓉|45|546|46|656|678|68|686|67|76|767|76| ....... 数据可增加 . . .数 .据 .可 .增 .加 . . . . . . .———————————————————————————————————————————————————————————— 可否用这种数据存放型式:当存放一个用户的资料时,特别是学科成绩时:sid:|sid:……的形式存入。另外有一张表专门用来存放学科名,因为学科是可以增加的,每一门学科有一个唯一sid;当要取出数据时,用explode把数据取出。只要两个表。一定还有更好的办法,只作参考。 科目用一个数据表,可以动态添加删除成绩一个数据表,ID KEMUID XMCJ:语文 张三 94 李四 90 小王 96然后查询的时候,把KEMUID=语文的全部查出,然后把XMCJ的值用空格分成数组不知道是否满足你的要求? 以前我做过一个(和同学打赌的时候做的) 关键就是,动态的修改表格结构...(修改的同时将修改记录对应起来就没问题了...) 例如:使用三张表 用户表: user 课程表: lesson 关系表: nexus 操作: 当我们新增课程: 例如: 大学语文 (我们采用随机数作为该字段e.g. $nw=time()*rand(1,99)) 在关系表中增加记录 id -> 大学语文 -> $nw 可以看出我们保存了这个对应关系 以后如果调用数据的时候先获取lesson各个字段名称,然后将名称与关系表中核对,寻找出名称 至于保存成绩我建议对用户建立个TEXT字段进行有规则的编码输入...============================================================用户资料中保存成绩的就可能是--------------------------1|80|2|90|3|120|5|95|.....可增加 =================或(@2)方法1|2|3|5|关系表中则----------1|大学语文|100020348|2|大学英语|100021300|3|大学书法|100021305|4|大学体育|100021400|5|高等数学|100021405|--------------------------课程表中则有可能是-----------------------+-------------------------------------------------------------------++-[(@2)方法]uid-100020348--100021300--100021305--100021400-100021405-++ 1 80 40 120 150 110 ++ 2 90 90 90 90 90 ++ 3 100 100 100 100 100 ++ 4 100 100 100 100 100 ++ 5 120 120 120 120 120 ++-------------------------------------------------------------------+注:(@2)方法同步用户资料保存的(@2)方法,可并存使用 使用: ===== 作为管理:增加课程....(在课程表中增加一随机字段) :在关系表中,增加此字段的中文说明以及该字段名称 作为操作: 通过关系表获得{中文名称,所初在关系表中的ID号,表字段号名称} 通过交互界面给学生增加分数 更新学生资料,在得分数据中可以按方法一方式进行增加(缺点以后统计总分或总平均分的时候要麻烦点) 若按方法2操作的话,则将用户的ID以及分数结合课程分数(已经提取了课程的字段名)添加进入课程表格的数据中 查看: ====== 查看学生分数,若不是第一种方法的话,可以直接将用户分数提出显示 若采用第二种方式的话,提取出用户资料内资料后,根据数据从关系表内选出课程字段名,然后从课程表内选择出用户ID的指定字段名称的数据(分数),根据关系表的对应关系可以正确显示出这些数据.... 以前我的就是这么做的,不过当时由于是打赌就仅仅把功能实现后就没怎么做了,现在连代码也没了~ 2011年4月;用正则怎么写?????? php 用ODBC连接SQLServer2000 php聊天室 请教:文章排序的思路? 时间格式的转换:Tue May 24 18:04:53 +0800 2011 请教几个问题: 求在MySQL中查询X天内数据的SQL语句 用php如何读取硬盘上的图片文件并将其在浏览器中显示出来?(该图片路径不在web的目录下) 可是输入我自己的IP却不行? php curl post 传参问题 请问开发php用什么工具 phpmyadmin为何无法更改主键
可以用多个表,用join left进行链接的.
我想大家没有明确我的意思,请先看看下面的数据表在数据表中 值得注意的是 第一行 和 第一列 因为,他们是需要根据其他表的变动而变动,也就是他们都是灵活的。1.一个数据表中存放一次成绩,那么有很多班级,很多次成绩的话,这个将会造成数据库管理混乱(数据表过多,如果20个班级10次考试成绩就有200个数据表。),特别是当用户使用的是虚拟主机的时候,他仅有的一个数据库却要创建n多的表,本人就觉得难已管理,以及造成数据库混乱。2.如果将所有班级各次的成绩存放在一个数据库表中,这样一来,我们就很难确定数据表中固定的字段了。比如第一行中的学科,这个就很难搞定了
班级不用的学生,他的考试科目个有不同,并且各个学生的考试科目都是根据成绩登录前,当前班级科目而定的。这样好难处理,唯一的做法就是将这个数据以班级为单位,创建成一个数组,存放在text字段里。但是这样以来呢,对以后学生成绩的数据分析很不利,也散失了数据库高效的查询效率。
对此我感到很郁闷,不知道怎么设计好这个数据库?请赐教!!!谢谢/ 感谢您认真的阅读该贴以及您的答复。!!!————————————————————————————————————————————————————————————
学号|姓名|语文|高数|工程数学|英语|电工|计算机组成原理|网络|VB|C语言程序设计|汇编语言|数据库| ....... 数据可增加
2003061115|方海|-|-|7|465|797|77|99|797|7|797|8| ....... 数据可增加
2003061116|罗静|-|-|-|87|97|7|7997|-|79|788|-| ....... 数据可增加
2003061117|温华|-|-|-|78|68|7|-|8|9|8|89| ....... 数据可增加
2003061118|曾英|-|-|-|-|78|797|979|-|9797|9|6| ....... 数据可增加
2003061119|蔡蓉|45|546|46|656|678|68|686|67|76|767|76| ....... 数据可增加
.
.
.数
.据
.可
.增
.加
.
.
.
.
.
.
.————————————————————————————————————————————————————————————
当存放一个用户的资料时,特别是学科成绩时:sid:|sid:……的形式存入。另外有一张表专门用来存放学科名,因为学科是可以增加的,每一门学科有一个唯一sid;
当要取出数据时,用explode把数据取出。
只要两个表。一定还有更好的办法,只作参考。
成绩一个数据表,ID KEMUID XMCJ:语文 张三 94 李四 90 小王 96
然后查询的时候,把KEMUID=语文的全部查出,然后把XMCJ的值用空格分成数组
不知道是否满足你的要求?
在关系表中增加记录
id -> 大学语文 -> $nw 可以看出我们保存了这个对应关系 以后如果调用数据的时候先获取lesson各个字段名称,然后将名称与关系表中核对,寻找出名称
至于保存成绩我建议对用户建立个TEXT字段进行有规则的编码输入...
============================================================用户资料中保存成绩的就可能是
--------------------------
1|80|
2|90|
3|120|
5|95|
.....可增加
=================
或(@2)方法
1|2|3|5|关系表中则
----------
1|大学语文|100020348|
2|大学英语|100021300|
3|大学书法|100021305|
4|大学体育|100021400|
5|高等数学|100021405|--------------------------课程表中则有可能是
-----------------------
+-------------------------------------------------------------------+
+-[(@2)方法]uid-100020348--100021300--100021305--100021400-100021405-+
+ 1 80 40 120 150 110 +
+ 2 90 90 90 90 90 +
+ 3 100 100 100 100 100 +
+ 4 100 100 100 100 100 +
+ 5 120 120 120 120 120 +
+-------------------------------------------------------------------+注:(@2)方法同步用户资料保存的(@2)方法,可并存使用
使用:
===== 作为管理:增加课程....(在课程表中增加一随机字段)
:在关系表中,增加此字段的中文说明以及该字段名称 作为操作:
通过关系表获得{中文名称,所初在关系表中的ID号,表字段号名称}
通过交互界面给学生增加分数 更新学生资料,在得分数据中可以按方法一方式进行增加(缺点以后统计总分或总平均分的时候要麻烦点) 若按方法2操作的话,则将用户的ID以及分数结合课程分数(已经提取了课程的字段名)添加进入课程表格的数据中 查看:
======
查看学生分数,若不是第一种方法的话,可以直接将用户分数提出显示 若采用第二种方式的话,提取出用户资料内资料后,根据数据从关系表内选出课程字段名,然后从课程表内选择出用户ID的指定字段名称的数据(分数),根据关系表的对应关系可以正确显示出这些数据....
以前我的就是这么做的,不过当时由于是打赌就仅仅把功能实现后就没怎么做了,现在连代码也没了~