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

px9o7tmv  于 2023-08-02  发布在  PHP
关注(0)|答案(5)|浏览(110)

我只想知道什么是数据库中的父表和子表。你能给我一个例子,让我明白它是如何工作的。
谢谢您的支持

uoifb46i

uoifb46i1#

子表和父表只是普通的数据库表,但它们以父子关系描述的方式链接。
它通常用于指定一个表的值引用另一个表中的值的位置(通常是另一个表的主键)。
例如,想象一篇新闻文章。这可以用一个名为articles的表来表示,其中包含idheadlinebodypublished_dateauthor的字段。但是,您可以将用户的ID值放在一个单独的表中,而不是将名称放在author字段中,该表可能称为authors,其中包含有关作者的信息,如idnameemail
因此,如果您需要更新作者的姓名,您只需要在authors(父)表中执行此操作;因为articles(子)表只包含相应author记录的ID。
希望这能帮助你更好地理解。

whlutmcx

whlutmcx2#

请注意,您可以拥有看起来像父子关系但实际上不是父子关系的关系,例如,在使用查阅表时。
区别在于,在真正的父子关系中,子记录通常不能很好地独立-它们是父表的详细记录,没有父表信息就没有用。一个人可以在DMV数据库中拥有多辆汽车,但您不希望CARS表中的子记录在OWNERS表中没有父记录-这几乎是无用的数据。
另一方面,如果我使用查找表来将代码扩展为更有意义的内容,或者将数据输入约束为可接受的值,那么如果查找表被删除,“子”记录仍然可以是有用的(可以独立)。我仍然可以有性别信息为“M”或“F”,即使我不再有查找表来扩展到“男性”或“女性”。

cngwdvgl

cngwdvgl3#

Parent -与另一个表的关系的“一”(/1)端的实体
Child -在与另一个表的关系的“多”(/N/*)侧的实体

8wigbo56

8wigbo564#

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

bvn4nwqk

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仅用于连接两个表]

相关问题