⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_18518.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:18518 发表者:役小角 发表日期:2002-10-21 16:12:27
<br>主题:建表时,用PRIMARY KEY和FOREIGN KEY好呢,还是用类型套类型的方法呢?
<br>内容:<BR>另外一个问题,<BR>我在书上的例子里看到REF,是什么意思?<BR>(<BR>CREATE TYPE PLATFORM_TYPE AS OBJECT(......);<BR><BR>CREATE TYPE SCIENTIST AS OBJECT(<BR>.....<BR>....<BR>for_platform REF PLATFORM_TYPE);
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:子龙 回复日期:2002-10-22 13:35:22
<br>内容:你最好还是去看书,看看什么是PK,什么是FK。<BR><BR>你好象在说:<BR>“请问,男人好,女人好,还是两性人好?还有你先告诉我什么是男人,女人和两性人。”<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:役小角 回复日期:2002-10-22 20:10:37
<br>内容:我就是看了书才不懂的呀<BR>书里只有说,A是怎样建立,B是怎样建立,又不讲A和B相比,各有什么优点,各用在什么背景下。<BR>不好意思的说,我也见到了PK和FK,可是,我手里的书上没有提到它们,这又是什么?<BR>或者,你可以推荐我一两本入门书?<BR>也比和我讨论男人还是女人的问题更有建设性。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:子龙 回复日期:2002-10-22 21:38:31
<br>内容:PK 和 FK<BR>是不同的概念,怎么相比,更不要说谁好了。<BR><BR>如果你的书上没有讲,那就太奇怪了。<BR><BR>下面的说明出自SQL Server联机丛书:<BR><BR>PRIMARY KEY 约束<BR>表中经常有一个列或列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可强制表的实体完整性。当创建或更改表时可通过定义 PRIMARY KEY 约束来创建主键。<BR><BR>一个表只能有一个 PRIMARY KEY 约束,而且 PRIMARY KEY 约束中的列不能接受空值。由于 PRIMARY KEY 约束确保唯一数据,所以经常用来定义标识列。<BR><BR>当为表指定 PRIMARY KEY 约束时,Microsoft&reg; SQL Server&#8482; 2000 通过为主键列创建唯一索引强制数据的唯一性。当在查询中使用主键时,该索引还可用来对数据进行快速访问。<BR><BR>如果 PRIMARY KEY 约束定义在不止一列上,则一列中的值可以重复,但 PRIMARY KEY 约束定义中的所有列的组合的值必须唯一。<BR><BR><BR><BR>FOREIGN KEY 约束<BR>外键 (FK) 是用于建立和加强两个表数据之间的链接的一列或多列。通过将保存表中主键值的一列或多列添加到另一个表中,可创建两个表之间的链接。这个列就成为第二个表的外键。<BR><BR>当创建或更改表时可通过定义 FOREIGN KEY 约束来创建外键。<BR><BR>FOREIGN KEY 约束并不仅仅只可以与另一表的 PRIMARY KEY 约束相链接,它还可以定义为引用另一表的 UNIQUE 约束。FOREIGN KEY 约束不允许空值,但是,如果任何组合 FOREIGN KEY 约束的列包含空值,则将跳过 FOREIGN KEY 约束的校验。<BR><BR><BR><BR>说明&nbsp;&nbsp;FOREIGN KEY 约束可引用同一数据库中的表或同一表(自引用表)内的列,例如,一个包含下面三列的雇员表:employee_number、employee_name 和 manager_ employee_number。由于经理本身也是雇员,所以从 manager_employee_number 列到 employee_number 列存在外键关系。<BR><BR><BR>尽管 FOREIGN KEY 约束的主要目的是控制存储在外键表中的数据,但它还可以控制对主键表中数据的修改。例如,如果在 publishers 表中删除一个出版商,而这个出版商的 ID 在 titles 表中记录书的信息时使用了,则这两个表之间关联的完整性将被破坏,titles 表中该出版商的书籍因为与 publishers 表中的数据没有链接而变得孤立了。FOREIGN KEY 约束防止这种情况的发生。如果主键表中数据的更改使之与外键表中数据的链接失效,则这种更改是不能实现的,从而确保了引用完整性。如果试图删除主键表中的行或更改主键值,而该主键值与另一个表的 FOREIGN KEY 约束值相关,则该操作不可实现。若要成功更改或删除 FOREIGN KEY 约束的行,可以先在外键表中删除外键数据或更改外键数据,然后将外键链接到不同的主键数据上去。<BR><BR>FOREIGN KEY 约束是索引的候选约束,其原因有以下两点: <BR><BR>对 PRIMARY KEY 约束的更改可由相关表中的 FOREIGN KEY 约束校验。<BR><BR><BR>当在查询中组合来自相关表中的数据时,经常在联接条件中使用外键列,方法是将一个表的 FOREIGN KEY 约束中的列与另一个表中的主键列或唯一键列匹配。索引使 Microsoft&reg; SQL Server&#8482; 2000 得以快速查找外键表中的相关数据。但是,创建索引不是必需的。即使没有在表间定义 PRIMARY KEY 或 FOREIGN KEY 约束,也可以对来自两个相关表中的数据进行组合,但两个表间的外键关系说明已用其键作为条件对其进行了优化,以便组合到查询中。有关在联接中使用 FOREIGN KEY 约束的更多信息,请参见联接基础知识。 
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:役小角 回复日期:2002-10-23 11:25:03
<br>内容:汗!书上是有讲PRIMARY KEY和FOREIGN KEY ,不过没有说PK和FK也是它们,看来,是我比较奇怪了<BR><BR>我知道PK和FK是不能比较的,我想不出的是该选择类型套类型的方法来连接数据呢,还是用PK和FK对表中的数据进行连接?这两种方法是不是分别针对对象-关系数据库和纯关系数据库的?<BR><BR>谢谢你贴了这么一大块给我,当然里面也有我不知道的东西,我正在看。<BR><BR>顺便,我没用过SQL SERVER,我现在正在学ORACLE。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:子龙 回复日期:2002-10-23 11:49:32
<br>内容:Oracle中也有说明,不过是E文的。<BR>PK和FK是数据库的概念与具体的DBMS没有关系。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:役小角 回复日期:2002-10-24 22:00:45
<br>内容:我现在只有乖乖地去看书了,<BR>待我看懂了再来问你!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:fenghua 回复日期:2002-12-15 17:58:31
<br>内容:PK是建立在表内的主码,能唯一标识一个记录(行),而FK是表与表间相互参照的外码。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:fenghua 回复日期:2002-12-15 17:59:56
<br>内容:当然PK和FK是不能乱用的。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -