数据库设计问题

各位高手,大家好.
最近我去面试一家公司,公司给我进行笔试,我没有做好,现在我给大家看看,希望能给我一个好的建议,谢谢!
问题是,用数据库设计出 一位学生上学的经历,还要用sql查询出与这个学生某日一起上学的一位同学的基本信息.
希望各位高手,慷慨建议,如何才能设计出以上的高效的数据库.
[162 byte] By [arben555] at [2008-5-24]
# 1
"还要用sql查询出与这个学生某日一起上学的一位同学的基本信息."
我看无非是 几个 SQL语句的集成,不至于涉及到数据库我看。。。
首先你要注意 如何跟另外那个同学关联上。也就是个关联问题
Bennyatt at 2007-10-19 > top of Msdn China Tech,专题开发,技术,项目,数据库应用,设计...
# 2
数据库字段包括学校名称,上学日期。SQL查找。
allen7757-漫步VS新月 at 2007-10-19 > top of Msdn China Tech,专题开发,技术,项目,数据库应用,设计...
# 3
学生信息表
学生编号、姓名、出生日期、性别、民族等

学历表
学生编号、学校、入学时间、毕业时间、学习情况简述(备注)
mathematician-数学家 at 2007-10-19 > top of Msdn China Tech,专题开发,技术,项目,数据库应用,设计...
# 4
使用学生编号作为关联字段,不错!
wanmoxiaosheng at 2007-10-19 > top of Msdn China Tech,专题开发,技术,项目,数据库应用,设计...
# 5
在学历表中,入学时间也要作为关键字段。
web_wolf-白鸟 at 2007-10-19 > top of Msdn China Tech,专题开发,技术,项目,数据库应用,设计...
# 6
路过!学习下
kaonuya at 2007-10-19 > top of Msdn China Tech,专题开发,技术,项目,数据库应用,设计...
# 7
还要用sql查询出与这个学生某日一起上学的一位同学的基本信息.
这个要搞清楚一个概念,什么叫同学,在同一个学校读书的就叫同学,还是要曾经在同一个班级读书的才叫同学?

我的假设是曾经在同一个班级读书的才叫同学.
数据库设计如下:

StudentSocialInformation:
ID Fname MidName Lname Sex PlaceOfBirth DateOfBirth Nation
1 三 張 男 XXXX 1979/8/1 汉

StudentSchoolPeriod
ID StudentID StartDate EndDate School
1 1 1986/9/1 1992/7/1 School_A
2 1 1993/9/1 1998/7/1 School_B
3 1 1998/9/1 2002/7/1 School_C

StudentClassPeriod
ID SchoolPeriodID StartDate EndDate Class
1 1 1986/9/1 1987/7/1 1年级三班
2 1 1987/9/1 1988/7/1 2年级五班
winternet-冬天 at 2007-10-19 > top of Msdn China Tech,专题开发,技术,项目,数据库应用,设计...