| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 871 人关注过本帖
标题:关于数据库的设计问题
只看楼主 加入收藏
fyz520
Rank: 1
等 级:新手上路
帖 子:120
专家分:1
注 册:2010-1-27
结帖率:95.12%
收藏
已结贴  问题点数:5 回复次数:13 
关于数据库的设计问题
做一个学生信息管理系统 ,有如下字段:

1、基本信息:
学籍号    姓名    性别    出生日期    现住址    班级   身份证号码    家长姓名……
2、各学科成绩
语文   数学    英语   政治……

是把1和2所有的字段放在一张表里面好还是分别放在两张表里面好呢?如果设计成两张表的话,怎么样才能对应哪个学生的成绩是多少呢?这是不是要用到传说中表和表的关联哦?怎么做关联呢?谢谢!
搜索更多相关主题的帖子: 数据库 设计 
2010-07-23 09:56
misswang
Rank: 8Rank: 8
来 自:湖北荆州
等 级:贵宾
威 望:15
帖 子:265
专家分:720
注 册:2010-3-11
收藏
得分:5 
分开好啊...这个是经验
要用的联表查询就可以了
select [表1字段名],[表2字段名] from [表1],[表2] where [表1某个字段]=[表2的某个字段]

[ 本帖最后由 misswang 于 2010-7-23 10:20 编辑 ]

misswp2010@
wangping103@
2010-07-23 10:17
fyz520
Rank: 1
等 级:新手上路
帖 子:120
专家分:1
注 册:2010-1-27
收藏
得分:0 
哦,谢谢哈,那表和表的关联是咋回事呢?
2010-07-23 10:29
fyz520
Rank: 1
等 级:新手上路
帖 子:120
专家分:1
注 册:2010-1-27
收藏
得分:0 
如果两个表分开的话,,,表1存放的是学生的基本信息,表2存放的是学生的成绩,
如果表1有“李四”这个学生,那怎么知道表2中的哪些成绩是“李四”这个学生的啊?
如果在表1删除了“李四”,那表2中“李四”的成绩还在啊,怎么解决这个问题呢?谢谢
2010-07-23 11:39
yms123
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 
可以在成绩表加一个学籍号的字段,这个字段与基本信息表的学籍号相对应,然后查询就可以查到对应学生的成绩了。
删除如果是SQL Server的话可以使用触发器来做,基本信息表做一个触发器,删除基本信息表的数据同时删除成绩表。
Access的话只能在程序里做。
2010-07-23 13:57
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
从你的帖子信息得知,你最少得弄三张表。
1、基本信息表
2、学科表
3、成绩表。

1与3,用学生的编号进行关联,2与3用学生编号及学科关联

飘过~~
2010-07-23 14:31
fyz520
Rank: 1
等 级:新手上路
帖 子:120
专家分:1
注 册:2010-1-27
收藏
得分:0 
以下是引用yms123在2010-7-23 13:57:48的发言:

可以在成绩表加一个学籍号的字段,这个字段与基本信息表的学籍号相对应,然后查询就可以查到对应学生的成绩了。
删除如果是SQL Server的话可以使用触发器来做,基本信息表做一个触发器,删除基本信息表的数据同时删除成绩表。
Access的话只能在程序里做。
谢谢,意思我已经明白了,可是表1和表2的学籍号字段是如何进行关联的呢?怎么操作?还有关联了之后,是不是当我在基本信息表添加一条学籍号为“01”的记录的同时也在成绩表自动添加了一条学籍号为“01”的记录,还有这个触发器是怎么做的啊
2010-07-23 15:16
yms123
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 
以下是引用fyz520在2010-7-23 15:16:00的发言:

谢谢,意思我已经明白了,可是表1和表2的学籍号字段是如何进行关联的呢?怎么操作?还有关联了之后,是不是当我在基本信息表添加一条学籍号为“01”的记录的同时也在成绩表自动添加了一条学籍号为“01”的记录,还有这个触发器是怎么做的啊
不一定同时添加,可以在这个学生有成绩时再添加数据到成绩表,比如那个01先添加基本信息表数据,当01有成绩时添加成绩数据到成绩表。
触发器一般需要像SQL Server2000的数据库才能使用,触发器其实就是当对某个表进行某项操作时会触发执行一段代码。
这里就是在对基本信息表进行删除记录操作时设置其触发一段删除成绩表对应记录的代码,这样设置后程序会在删除基本信息表时自动删除与其关联的成绩表。
关联是指ID关联
比如
基本信息表里一个学生的学籍号是01
成绩表这个学生的学籍号还是01
成绩表的学籍号必须在基本信息表存在,并且一个学生的学籍号是唯一不重复的

[ 本帖最后由 yms123 于 2010-7-23 15:33 编辑 ]
2010-07-23 15:28
fyz520
Rank: 1
等 级:新手上路
帖 子:120
专家分:1
注 册:2010-1-27
收藏
得分:0 
我用的是SQL Server 2008哦,具体操作方法能说说吗?谢谢了,或者提供个教程我自己去看看
2010-07-23 15:31
yms123
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 
触发器用代码在数据库里就可以创建,不过一两句话说不清楚
百度教程
http://wenku.baidu.com/view/1234933383c4bb4cf7ecd19e.html
SQL 2008目前还没使用呢,只有SQL2005-2000触发器的创建应该都差不多,都是可以使用代码在数据库查询分析器里来创建
2010-07-23 15:42
快速回复:关于数据库的设计问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019565 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved