什么是数据库中的父表和子表?

Bru*_*dit 31 php mysql database

我只是想知道什么是父表以及数据库中的子表是什么.你能告诉我一个例子,所以我理解它是如何运作的.

谢谢

Mar*_*ean 35

子表和父表只是普通的数据库表,但它们以父子关系描述的方式链接.

它通常用于指定一个表的值引用另一个表中的值的位置(通常是另一个表的主键).

例如,想象一篇新闻文章.这可以通过一个名为表来表示articles,并具有字段id,headline,body,published_dateauthor.但不是在放置一个名称author字段,可以代替把用户的ID值在一个单独的表,也可以叫做authors-即对作家如信息id,nameemail.

因此,如果您需要更新作者的姓名,您只需要在authors(父)表中执行此操作; 因为articles(子)表只包含相应author记录的ID .

希望这有助于您更好地理解.

  • 如果你有多篇文章指向一位作者,那么`authors`表不是父表吗? (4认同)
  • 我想知道,有什么关于初学者的好书吗?在亚马逊上搜索初学者的书时,这很令人困惑。 (2认同)

小智 15

请注意,您可以拥有看似父子关系,但不是,例如在使用查找表时.区别在于,在真正的父子关系中,记录通常不是很好 - 它们是父级的详细记录,没有父表信息就没有用.一个人可以在DMV数据库中拥有多辆汽车,但是如果没有OWNERS表中的父记录,你就不会想要CARS表中的记录 - 这几乎是无用的数据.

另一方面,如果我使用查找表将代码扩展为更有意义的代码,或者将数据条目限制为可接受的值,那么如果删除查找表,"子"记录仍然有用(可以独立) .即使我不再有查找表将其扩展为"男性"或"女性",我仍然可以将性别信息设为"M"或"F".

  • 这应该是公认的答案,因为它是唯一解释“查找”关系与“父母-子女”关系之间区别的方法。 (2认同)

小智 7

父 - 与另一个表的关系的"一"(/ 1)侧的实体

Child - 与另一个表的关系的"many"(/ N/*)侧的实体

  • `Parent` < - `Child`.孩子**指向父母.所以每个孩子**都知道**是谁的父母.每个孩子只有一个父母.父实体不包含有关其子项的信息. (4认同)
  • 这是一种简化,但是在大多数情况下都可以使用。 (2认同)

Mar*_*c B 5

子表往往是一个或多个外键指向其他表的表。请注意,子表本身也可以是某些 OTHER 表的父表。