我只想知道什么是数据库中的父表和子表。你能给我一个例子,让我明白它是如何工作的。谢谢您的支持
uoifb46i1#
子表和父表只是普通的数据库表,但它们以父子关系描述的方式链接。它通常用于指定一个表的值引用另一个表中的值的位置(通常是另一个表的主键)。例如,想象一篇新闻文章。这可以用一个名为articles的表来表示,其中包含id、headline、body、published_date和author的字段。但是,您可以将用户的ID值放在一个单独的表中,而不是将名称放在author字段中,该表可能称为authors,其中包含有关作者的信息,如id、name和email。因此,如果您需要更新作者的姓名,您只需要在authors(父)表中执行此操作;因为articles(子)表只包含相应author记录的ID。希望这能帮助你更好地理解。
articles
id
headline
body
published_date
author
authors
name
email
whlutmcx2#
请注意,您可以拥有看起来像父子关系但实际上不是父子关系的关系,例如,在使用查阅表时。区别在于,在真正的父子关系中,子记录通常不能很好地独立-它们是父表的详细记录,没有父表信息就没有用。一个人可以在DMV数据库中拥有多辆汽车,但您不希望CARS表中的子记录在OWNERS表中没有父记录-这几乎是无用的数据。另一方面,如果我使用查找表来将代码扩展为更有意义的内容,或者将数据输入约束为可接受的值,那么如果查找表被删除,“子”记录仍然可以是有用的(可以独立)。我仍然可以有性别信息为“M”或“F”,即使我不再有查找表来扩展到“男性”或“女性”。
cngwdvgl3#
Parent -与另一个表的关系的“一”(/1)端的实体Child -在与另一个表的关系的“多”(/N/*)侧的实体
8wigbo564#
一个子表往往是一个有一个或多个指向其他表的外键的表。注意,子表本身也可以是某个OTHER表的父表。
bvn4nwqk5#
这些术语用于数据库关系中。例如你有两个表,1.Manifast
+-------------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+------------------+------+-----+---------+----------------+ | manifast_id | int(11) unsigned | NO | PRI | NULL | auto_increment | | description | text | NO | | NULL | | | title | text | NO | | NULL | | +-------------+------------------+------+-----+---------+----------------+
字符串1.日序
+-----------------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------------+------------------+------+-----+---------+----------------+ | day_sequence_id | int(11) unsigned | NO | PRI | NULL | auto_increment | | day_number | int(11) | NO | | NULL | | | day_start | int(11) | NO | | NULL | | | manifast_id | int(11) | NO | | NULL | | +-----------------+------------------+------+-----+---------+----------------+
型如果你想连接这两个表,你需要使用以下格式的命令。
> ALTER TABLE child_table_name ADD FOREIGN KEY (P_ID) REFERENCES > parent_table_name (P_ID)
型所以它变成了。
> ALTER TABLE day_sequence ADD CONSTRAINT fk_manifast FOREIGN KEY > (manifast_Id) REFERENCES manifast(manifast_Id);
型总之,子表是一个有外键的表,并且与其他表相连。父表没有外键,并连接到其他表。[注:此ans仅用于连接两个表]
5条答案
按热度按时间uoifb46i1#
子表和父表只是普通的数据库表,但它们以父子关系描述的方式链接。
它通常用于指定一个表的值引用另一个表中的值的位置(通常是另一个表的主键)。
例如,想象一篇新闻文章。这可以用一个名为
articles
的表来表示,其中包含id
、headline
、body
、published_date
和author
的字段。但是,您可以将用户的ID值放在一个单独的表中,而不是将名称放在author
字段中,该表可能称为authors
,其中包含有关作者的信息,如id
、name
和email
。因此,如果您需要更新作者的姓名,您只需要在
authors
(父)表中执行此操作;因为articles
(子)表只包含相应author
记录的ID。希望这能帮助你更好地理解。
whlutmcx2#
请注意,您可以拥有看起来像父子关系但实际上不是父子关系的关系,例如,在使用查阅表时。
区别在于,在真正的父子关系中,子记录通常不能很好地独立-它们是父表的详细记录,没有父表信息就没有用。一个人可以在DMV数据库中拥有多辆汽车,但您不希望CARS表中的子记录在OWNERS表中没有父记录-这几乎是无用的数据。
另一方面,如果我使用查找表来将代码扩展为更有意义的内容,或者将数据输入约束为可接受的值,那么如果查找表被删除,“子”记录仍然可以是有用的(可以独立)。我仍然可以有性别信息为“M”或“F”,即使我不再有查找表来扩展到“男性”或“女性”。
cngwdvgl3#
Parent -与另一个表的关系的“一”(/1)端的实体
Child -在与另一个表的关系的“多”(/N/*)侧的实体
8wigbo564#
一个子表往往是一个有一个或多个指向其他表的外键的表。注意,子表本身也可以是某个OTHER表的父表。
bvn4nwqk5#
这些术语用于数据库关系中。
例如你有两个表,
1.Manifast
字符串
1.日序
型
如果你想连接这两个表,你需要使用以下格式的命令。
型
所以它变成了。
型
总之,子表是一个有外键的表,并且与其他表相连。父表没有外键,并连接到其他表。[注:此ans仅用于连接两个表]