数据库主从表主键外键.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库主从表主键外键

A表的主键在B表中充当外键,谁是主表,谁是子表? A为主表 B为从表 个人认为: 外键是约束的一种。不存在主从关系,只存在引用关系,如部门表与员工表。 每个员工都属于某个部门,必须与某个部门资料对应。 主从表的情况:类似于订单表与订单明细表的关系。 希望以上有所帮助. 有两个表 A表中的C字段里面的内容是B表中的主键,并且值有多个,请问数据库该怎么设计啊? create table B ( C char(6) primary key, C_Name varchar(50) not null ) go create table A ( A_ID char(6) primary key, A_Name varchar(100) not null, C char(6) references B(C)??? --将A表中C字段设置外键 ) go 从表的外键与主表的主键的列名必须相同吗?值呢? 列名不一定要相同,但是外键的取值要么从主键的域中取要么取空值,这在数据库中叫做参照完整性规则。 ? 主键和外键是把多个表组织为一个有效的关系数据库的粘合剂。主键和外键的设计对物理数据库的性能和可用性都有着决定性的影响。 必须将数据库模式从理论上的逻辑设计转换为实际的物理设计。而主键和外键的结构是这个设计过程的症结所在。一旦将所设计的数据库用于了生产环境,就很难对这些键进行修改,所以在开发阶段就设计好主键和外键就是非常必要和值得的。 主键: ? 关系数据库依赖于主键---它是数据库物理模式的基石。主键在物理层面上只有两个用途: ??????? 1. 惟一地标识一行。 ??????? 2. 作为一个可以被外键有效引用的对象。 ? 基于以上这两个用途,下面给出了我在设计物理层面的主键时所遵循的一些原则: ??????? 1. 主键应当是对用户没有意义的。如果用户看到了一个表示多对多关系的连接表中的数据,并抱怨它没有什么用处,那就证明它的主键设计地很好。 ??????? 2. 主键应该是单列的,以便提高连接和筛选操作的效率。 ?????? 注:使用复合键的人通常有两个理由为自己开脱,而这两个理由都是错误的。其一是主键应当具有实际意义,然而,让主键具有意义只不过是给人为地破坏数据库提 供了方便。其二是利用这种方法可以在描述多对多关系的连接表中使用两个外部键来作为主键,我也反对这种做法,理由是:复合主键常常导致不良的外键,即当连 接表成为另一个从表的主表,而依据上面的第二种方法成为这个表主键的一部分,然,这个表又有可能再成为其它从表的主表,其主键又有可能成了其它从表主键的 一部分,如此传递下去,越靠后的从表,其主键将会包含越多的列了。 ??????? 3. 永远也不要更新主键。实际上,因为主键除了惟一地标识一行之外,再没有其他的用途了,所以也就没有理由去对它更新。如果主键需要更新,则说明主键应对用户无意义的原则被违反了。 ?????? 注:这项原则对于那些经常需要在数据转换或多数据库合并时进行数据整理的数据并不适用。 ??????? 4. 主键不应包含动态变化的数据,如时间戳、创建时间列、修改时间列等。 ??????? 5. 主键应当有计算机自动生成。如果由人来对主键的创建进行干预,就会使它带有除了惟一标识一行以外的意义。一旦越过这个界限,就可能产生认为修改主键的动机,这样,这种系统用来链接记录行、管理记录行的关键手段就会落入不了解数据库设计的人的手中 所谓外键:如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。 至于主键:主关键字是被挑选出来,作表的行的惟一标识的候选关键字。一个表只有一个主关键字。主关键字又可以称为主键。 如上可知:若name是表B的主键,由于name还是表A的外键。由上面的定义可知表B是表A的主表,表A则是表B的从表, 外键是该表是另一个表之间联接的字段 外键必须为另一个表中的主键 外键的用途是确保数据的完整性。它通常包括以下几种: 实体完整性,确保每个实体是唯一的(通过主键来实施) 域完整性,确保属性值只从一套特定可选的集合里选择 关联完整性,确保每个外键或是NULL(如果允许的话)或含有与相关主键值相配的值 例子: 表A 字典表, 表B 业务表。 外键应建立在表B 上 。 1、表B 的字典项目的代码只能是表A 中代码内容。 2、表B 可以无条件删除记录。 3、表A 在删除的时候,将根据外键的规则,判断表B 中是否使用了要删除数据的代码,如果有引用,则不能删除。 ORACLE 如何建立表外键 例:学生表student (id, n

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档