`
Franciswmf
  • 浏览: 777195 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

设计和创建表间关系

 
阅读更多

第 6 节:设计和创建表间关系


在这一课,您将学习如何使用外键来设计和创建表间关系。


有关更多信息,请参阅 " 表是由外键关联的 " 第 12 页。



虽然每个表都包含有关单个主题的信息,但两个或更多个表可能会包含

相关的信息。例如,职员是部门的成员,或者销售订单是一组产品的销

售订单。数据库中的关系可能表现为表间的外键关系,也可能自身就成

为独立的表。您将在本章中看到这两种情况的示例。


通过在数据库中创建关系,可以编写用于管理表中数据的规则或惯例的

代码。当关系置入数据库结构后,将不存在对例外情况的规定。


表间关系分为以下几个类别。


• 一对一关系 一个实体中的每个项都对应于另一个实体中的零个

或一个实体。例如,在示例数据库中,一个 职员管理一个 部门。

没有地方可以输入另一个部门经理。重复该部门条目会涉及到重

复部门 ID,由于部门 ID 列是主键,所以这是不可能的。


通常,最好将处于一对一关系的项组合到一个表中。 department

表中有一个 manager 列,而不是有一个单独的表名为 manager。


有关应该单独存放项的情况,请参阅 "ASA SQL 用户指南 > 设计

数据库 "。


多对一关系 多对一关系成为表间的外键关系。在多对一关系中,

一个 实体中的主键成为多个 表中的新外键列。


例如,在您刚创建的数据库中,一个 客户可以下多份 订单,但

每份订单只能由一个客户发出。若要表示一对多关系, sales_order

表中需要一个外键列 (cust_id),它映射到 customer 表中的主键列

(id)。通常,为这两个列指定相同的名称将会方便一些。



sales_order 表的 cust_id 列中的每一个条目都必须与 customer 表的 id

列中的一个条目相匹配。 sales_order 表 (包含关系中的外键)称

作外表或引用表。 customer 表 (包含被引用的主键)称作主表或

被引用表。


多对多关系 多对多关系由一个中间表来表示,而且从该中间表


到每个相关实体存在外键关系。



例如,在示例数据库中,产品和销售订单之间存在多对多关系。

一个销售订单可能包含多种产品,而一种产品可能会出现在多个

销售订单上。

product


id

name


integer

char(15)


id

id = prod_id


sales_order_items

integer


id = id



id


sales_order

integer


description char(30)


line_id


smallint


size char(18)


prod_id integer


order_date date


color

quantity


char(6)

integer


quantity integer

ship_date date


region


char(7)



unit_price numeric(15,2)


在某些情况下,中间表 (sales_order_items) 包含附加的信息,如已订

购产品的件数以及它们的发货日期。在本例中,中间表不包含任

何附加信息。


添加用于使数据库中的表相关联的外键。


添加以下外键:


• sales_order_items 中 id 列的外键,引用 sales_order 中的 id 列。该键

将销售订单和销售订单项之间的多对一关系置入数据库。


• sales_order_items 中的 prod_id 列的外键,它引用 product 中的 id 列。

该键将销售订单项和产品之间的多对一关系置入数据库。


• sales_order 中的 cust_id 列的外键,它引用 customer 中的 id 列。该键

将销售订单和客户之间的多对一关系置入数据库。


前两个外键一起将销售订单和产品之间的多对多关系置入数据库。

❖ 创建外键:


1 单击要为其创建外键的表。

2 打开 " 外键 " 文件夹。

3 双击 " 添加外键 " 以打开 " 新建外键 " 向导。

4 遵循向导中的指导操作。

至此,您就学完了有关设计和建立关系数据库的入门章节。本书的其余

章节将介绍如何在数据库中添加数据和从数据库中检索数据。这些章节

将使用 Adaptive Server Anywhere 示例数据库,该数据库比您刚创建的

数据库大一些。
分享到:
评论

相关推荐

    sql数据库应用课程设计

    3.1 设计表间关系:列出父表与子表的关联索引,指出要建立的表间关系的类型。 3.2 完整性设计:列出主要字段完整性的字段名、完整性约束条件;列出记录完整性约束及其约束条件;列出参照完整性表。

    《Access2016数据库教程》第2章数据库的设计与创建.pptx

    5 确定数据库需要建立的表和各表包含的字段及主键 确定表之间的联系 优化设计 应用规范化理论对表设计进行检查,以减少冗余。 在数据库中创建表及其他相关的对象 《Access2016数据库教程》第2章数据库的设计与创建...

    用户角色菜单权限表结构创建以及数据插入

    用户菜单权限表建表语句以及数据插入语句,后台管理系统搭建必备,学习专用。 如果使用外键关联,在对表进行数据操作时就考虑另一张关联的表...so,在设计表时尽量减少表与表直接的外键约束,避免麻烦,表关联关系清晰

    Web表单设计 创建高可用性的网页表单 PDF 带目录书签

    两位作者通过丰富的实例,明确阐述了如何从表单的关系、对话和外观三层模型出发,设计出具有高可用性的优质网页表单,并通过可用性测试及早发现表单的潜在问题。通过阅读本书,读者能够了解到如何定义需求,如何提出...

    空间数据库技术应用:外部表连接.ppt

    (2)使用Geodatabase创建表 除了上述在Access中构建表之外,也可以直接在地理数据库(Geodatabase)中创建关系表,具体操作步骤如下: 1)打开ArcCatalog,选择地理数据库,单击鼠标右键选择新建表。 2)输入表的...

    数据库与数据表设计.pptx

    数据库与数据表设计 本讲大纲: 1、数据库分析 2、创建数据库 3、创建数据表 4、数据表逻辑关系 数据库与数据表设计全文共28页,当前为第1页。 数据库分析 企业人事管理系统主要用来记录一个企业中所有员工的基本...

    SQL语句形式创建数据库表(人事管理系统)

    在做人事管理系统时。使用sql语句生成表。可供参考,sql server 2000

    Access数据库应用教程(2)

    表的设计主要包括输入字段名、选择数据类型、设置字段属性、创建主键、创建索引和建立表之间关系等内容。表的基本操作包括如何在数据库窗口和数据表视图中操作。在数据库窗口中可以修改表名称、删除表和复制表。在...

    商城后台数据库表,及关系图设计文档.zip,包含建表语句和测试数据,

    商城后台数据库表,及关系图设计文档.zip,包含建表语句和测试数据,有整体架构图,一目了然

    B/S结构的城市酒店入住信息管理系统的设计

    4.2.3 创建表间关系 4.2.4 通过ADO.NET访问数据库 4.3 系统功能模块设计 4.3.1 客房预定功能 4.3.2 客房管理功能 4.3.3 预定管理功能 4.3.4 入住管理功能 4.3.5 消费记账功能 4.3.6 收银退房功能 5 系统的...

    如何创建数据库.pptx

    本章要点 创建数据库 数据库中的表的使用 建立表间的关联关系 返回目录 如何创建数据库全文共30页,当前为第2页。 6.1 创建数据库 使用表可以存储和显示一组相关的数据,如果想把多个表联系起来,就一定要建立...

    学生信息管理+Java程序设计+界面设计+对象创建

    总体设计中涉及6个Java源文件,各文件负责不同功能界面的创建和学生信息对象的创建。 适用人群:适合需要进行学生信息管理的班级、学校等教育机构或管理者。同时,对于对Java程序设计和界面设计感兴趣的人群,也有...

    电话计费管理系统【SQLServer数据库+课程设计文档】

    电话计费管理系统【SQLServer数据库+课程设计文档】 ...4.2创建收费信息表 4.3建立存储过程向表中插入、修改、删除数据 4.4单表查询: 4.5多表查询: 4.6嵌套查询 4.7视图 五、小结 六、参考文献

    数据库表设计.docx

    数据库表设计 数据库表...如果非主键和非主键间有依赖关系,就要将它们从主表分离出去,放在另一个表中,并通过外键进行关联 数据库表设计全文共3页,当前为第3页。 数据库表设计全文共3页,当前为第3页。 数据库表设计

    自己动手设计数据库.[美]Michael J.Hernandez(带详细书签) PDF 下载 高清 完整版

    创建表结构和表关系,设定主键,设置字段说明,并设定视图;确保每一个应用有恰当水平的数据完整性;明确和建立业务规则。 《自己动手设计数据库》主要讲述数据库的设计,讨论了如何建立表结构、确定主键、设置字段...

    基于Java的CRM客户关系管理系统的设计和实现.rar

    我的题目是基于java的CRM客户关系管理系统的设计和实现 这个系统开发的开发环境: 开发工具:MyEclipse2010版 数据库:MySql+HeidiSql JDK:MyEclipse2010自带的JDK1.7 Tomact:MyEclipse自带的Tomcat7.0 ...

    使用MySQL设计企业OA系统的数据库课程设计文档

    根据提供的引用内容,这个文件主要总结了一个企业OA系统的数据库设计项目。项目的目标是设计一个...总结来说,这个文件主要介绍了一个企业OA系统的数据库设计项目,包括表的创建和关系建立,以及索引和触发器的设计。

    数据库课程设计题目汇总.doc

    《数据库原理及技术》课程设计 一、课程设计的目的和要求 (1)培养学生理解与《数据库原理》课程相关的理论知识,... 创建触发器当往教职工工资项目表中插入记录或删除记录时,自动修改该职工的应 发工资数和实发工资

    基于数据关系表的XML查询算法

    为解决交互式电子技术手册数据量庞大、结构繁杂不易查询的问题,采用将XML文档分解为层次化数据关系表的设计方法.在系统中创建数据结点,提取后构成文档树;根据文中定义将整体数据分解为具有层次化的数据关系表片段,由...

    交互式SQL的使用,创建Student数据库,包括Students,Courses,SC表

    1,创建Student数据库,包括Students,Courses,SC表,表结构如下: Students(SNO,SNAME,SEX,BDATE,HEIGHT,DEPARTMENT) Courses(CNO,CNAME,LHOUR,CREDIT,SEMESTER) SC(SNO,CNO,GRADE) (注:下划线表示主键,斜体表示...

Global site tag (gtag.js) - Google Analytics