CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  PowerBuilder >  基础类

关于主键和外键的问题!!!!!!!!!!!!

楼主taoguang2(没名小卒)2002-12-04 08:53:59 在 PowerBuilder / 基础类 提问

我有三个表:学生表(学号,姓名)课程表(课程名,课程号)成绩表(学号,课程号,成绩)  
  你能帮我找出成绩表的主键和外键吗?  
  有人告诉我成绩表的外键是“学号”,“课程号”,不用设主键了,大家说对吗?  
  对他又说了,在pb中如果表没有主键的话,在运行程序时的“保存”,就不能把数据写进数据库了?这不是矛盾吗??我真搞糊涂了!!! 问题点数:20、回复次数:16Top

1 楼george77(F22)回复于 2002-12-04 09:00:16 得分 0

成绩表的主键:(学号,课程号)  
  外键:学号   ,   课程号Top

2 楼taoguang2(没名小卒)回复于 2002-12-04 09:01:32 得分 0

其实我也觉得“学号”和“课程号”应该既是主键又是外键!!大家说呢???Top

3 楼taoguang2(没名小卒)回复于 2002-12-04 09:07:56 得分 0

但我又发现了一个问题:在我的成绩表中,如果把“学号”设为主键,因为同一个学生要有好几门课程,所以在成绩表中,学号又有重复了,到底主键应不应设“?Top

4 楼119119(^_^,转向DELPHI,我是痛病快乐)回复于 2002-12-04 09:18:00 得分 0

我也同意,成绩表的主键是(学号,课程号)  
                    外键:(学号,课程号)  
    没有问题。你一定要设主键。没有不设的我。你只把学号设为主键,肯定会遇到你这样的问题了!Top

5 楼jackxrh()回复于 2002-12-04 09:43:50 得分 0

primary   key   ,   foreign   key   只是一种   logic   关系的定义而已   ....  
   
  说明你当前的取值满足了一定的逻辑关系   .....     至于你想  
   
  在哪些   field   上定义   primary   key   或者   foreign   key   ,   那就看  
   
  你存在   table   中的   field   要满足什么样的逻辑要求了   ...      
   
  你可以把   primary   key   ,   foreign   key   定义在任何   fileds   上   ..Top

6 楼taoguang2(没名小卒)回复于 2002-12-04 09:54:33 得分 0

楼上的大哥,能不能结合点实际,你的话太难懂了!  
  “但我又发现了一个问题:在我的成绩表中,如果把“学号”设为主键,因为同一个学生要有好几门课程,所以在成绩表中,学号又有重复了,到底主键应不应设“?  
  Top

7 楼jackxrh()回复于 2002-12-04 09:59:44 得分 0

可以设     ,   pirmary   key   :   学号   +   课号     foreign   key   就不要了   ,  
   
  省得麻烦   ...  
   
  Top

8 楼jackxrh()回复于 2002-12-04 10:00:44 得分 0

没有   primary   key   ,   在   pb   中一样的可以保存啊   ,   是谁说的不能保存   ??Top

9 楼taoguang2(没名小卒)回复于 2002-12-04 10:05:34 得分 0

是一位前辈说的,不设置主键不可以保存的。事实也是的,我试过了,你不设主键,不让保存的Top

10 楼jackxrh()回复于 2002-12-04 10:09:32 得分 0

你设置一下   datawindow   的   update   property   就   okayTop

11 楼taoguang2(没名小卒)回复于 2002-12-04 10:15:16 得分 0

你能不能告诉我怎么设置呀,都是英文的,我看不懂!!Top

12 楼jackxrh()回复于 2002-12-04 10:21:11 得分 0

打开   dw   ,   rows->update   property    
   
  选中   allow   update     ->   选择   要更新的   table   ->     要更新column   ->  
   
  更新条件  
   
  Top

13 楼taoguang2(没名小卒)回复于 2002-12-04 10:28:27 得分 0

use   delete   then   insert   和   use   update是什么意思?  
  在update   property里如果我不选择unigue   key   columns,就点不了”ok“!!  
  是不是必须要选主键呀Top

14 楼jackxrh()回复于 2002-12-04 10:32:09 得分 8

那是更新条件   ,   你可以选择   学号   ,课程号Top

15 楼cdqy(触电)回复于 2002-12-04 10:36:45 得分 2

你选择一些列就行,不过你得保证这些列在这张表中能确定唯一的行。跟主键是一样的意思,但不一定要选主键!原则上每张表都应设主键!Top

16 楼louisa5155(蓝色城堡)回复于 2002-12-04 10:43:47 得分 10

主键是必须的,外键个人认为可有可无,因为程序设定很方便Top

相关问题

  • 外键和主键?
  • 关于主键和外键
  • 主键与外键?
  • 关于主键和外键sql server
  • 主键和外键的问题
  • 主键?外键?索引?(急!!!)
  • sql server中的主关键字和外关键字的问题!
  • ■■■关于主键和外键的简单问题■■■
  • 关系管理中主表键和外表键的用法
  • 对主键,外键和约束都没什么概念啊?

关键词

  • 学号
  • 课程
  • 学生
  • 成绩表
  • 主键
  • 课程号
  • foreign
  • 保存
  • 问题
  • primary

得分解答快速导航

  • 帖主:taoguang2
  • jackxrh
  • cdqy
  • louisa5155

相关链接

  • PowerBuilder类图书
  • PowerBuilder类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo