我已经读过这个问题: 什么之间的差别和不确定关系?

但我仍不太确定...我有什么是三个表格。

  1. 用户
  2. 对象
  3. 照片

用户可以自己的许多对象,也可以发表的许多照片每个人的对象。我的直觉告诉我这是一个确定的关系,因为我会需要用户名的对象表和我需要objectID在图片表...

或者是我错了?该说明在其他专题局限于理论的解释的方式的数据库将解释,它之后,它已经被编码,而不是如何的对象是连接在真实的生活。我有点困惑,因为如何决定的标识与非识别当考虑怎样我要去建立的数据库。

有帮助吗?

解决方案

这两种声音,像识别关系到我的。如果你有听说这方面的一对一或一对-很多,很多-对-很多, 一对关系确定关系, , 许多对多关系非确定关系.

  • 如果孩子标识其父母,它是一种确定关系。在链接你必须给予,如果你有一个电话号码,你知道它属于谁(它只属于一个)。

  • 如果孩子不识别其父母,这是一个非识别的关系。在链接,它提到国家。想想一个国家作为一个表中的行代表的情绪。"开心"不会识别一个特定的人,但许多人。

编辑:其他的现实生活的例子:

  • 一个物理地址是一个非标识的关系,因为许多人可能居住在一个地址。另一方面,一个电子邮件地址是(通常被认为是)的一个确定的关系。
  • 一个社会安全号码是一种识别关系,因为它仅仅属于一个人
  • 意见在Youtube上的视频识别的关系,因为他们仅属于一个视频。
  • 一个原始的绘画只有一个所有者(确定),而很多人可能拥有重印的这幅画(非识别).

其他提示

我认为,一个更简单的方式想象它是问问自己,如果子记录可能存在没有父母。例如,单线的项目的需要为标题存在。因此,单线的项目必须具有了头标识符作为其部分关键,因此,这是一个例子的一个识别的关系。
另一方面,电话号码可能存在没有所有权的一个人,虽然一个人可能有若干电话号码。在这种情况下,人人拥有电话号码是一个非关键或非识别的关系,因为电话号码可以存在,不论所有者的人(因此,该电话号码的所有者的人可以为空而在订单线的项目的例子,以头标识不可能是空。

NickC说:一对关系正在确定关系,以及许多对多关系都不确定关系

的解释似乎完全错误的给我。你可以有:

  • 小野到一个不确定的关系
  • 一对许多不确定关系
  • 一对一关系的识别
  • 一到许多确定关系
  • 许多对多关系的识别

想象一下你有如下表: customer, productsfeedback.他们都是基于 customer_id 它存在 cutomer 表。因此,通过 NickC 定义不应该存在任何种类的许多对多识别的关系,然而在我如,可以清楚地看到: 反馈可以存在只是如果有关产品存在和已经被买通的客户,使客户、产品和反馈应当确定.

你可以看看 MySQL手册, ,说明如何增加外国键MySQL工作台。

马赫迪,你的直觉是正确的。这是一个重复问题以及这个投票的回答是不正确或完整的。看看上面有两个答案在这里:之间的差异识别的非识别

识别与非-确定没有身份。只是问问自己可以子记录存在没有父母吗?如果答案是肯定的,它是非识别。

核心问题是否主键的儿童,包括外键的父母。在非识别关系的儿童的主要关键(企业)不包括外键(FK).

问问自己这个问题

  • 可子记录存在没有父母的记录?

如果儿童可能存在没有父母,那么关系不确定。(谢谢你 MontrealDevOne 为说明它更加清楚)

一对一关系的识别

社会安全号码很好地适应在这个类别。 让我们来想象一下例如,社会安全号码不存在与出一人(或许他们可以在现实中,但不是在我们的数据库)的 person_id 将PK的 表,包括列如一 名称地址.(让我们把它简单).的 social_security_number 表将包括 ssn 列和 person_id 列作为一个外国的关键。由于这FK可以用作PK的 social_security_number 表这是一个识别的关系。

一对一的非关系的识别

在一个大型复杂的办公室你可能有一个 办公室 表,其中包括房间号楼和建筑物数量与一PK,和一个独立的 雇员 表。雇员表(子)具有FK这是 office_id 列从 办公室 表PK。虽然每个雇员只有一个办公室和(为此例)每个办公室仅有一名员工,这是一个非识别的关系,因为办事处可能存在没有员工,雇员可更改的办事处或在这一领域的工作。

一个对多关系

一个对多关系,可以分类很容易地通过询问同样的问题。

许多对多关系

许多对多关系始终是确定的关系。这可能似乎是反直觉的,但承担与我。采取两个表 书籍, ,每个图书馆有很多的书,和一份每本书的的存在在许多图书馆。

这里是什么使得它并识别的关系: 为了实现这个你需要一个连接两列的表格,这是主键的每个桌上。呼叫他们的 library_id 列和 ISBN 列。这个新的链接表没有单独的主要关键,但是,等一下!外键成为一个多列主键的链接表由于重复记录在联表将毫无意义。的 链接 不可能存在的父母;因此,这是一个识别的关系。我知道,好吧?

大部分时间关系的类型并不重要。

所有这一切说,通常你不必担心你有。只是分配适当的初级和外键要每个表格的关系将会发现自己。

编辑: NicoleC, 我读的 答案 你的联系和它不同意我的。我把他点关SSN,并同意这是一个不好的例子。我会尽量想起另一种更加清晰的例子。然而,如果我们开始使用真实世界的类比确定一个数据库的关系的类比,始终打破。它的事项没有,是否SSN识一个人,它的问题你是否使用它作为一个外国的关键。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top