web-dev-qa-db-fra.com

Qu'est-ce qu'une table parent et une table enfant dans la base de données?

Je veux juste savoir ce qu'est une table parent et ce qu'est une table enfant dans des bases de données. Pouvez-vous s'il vous plaît me montrer un exemple afin que je comprenne comment cela fonctionne s'il vous plaît.

Je vous remercie

27
BruceyBandit

Les tables enfants et les tables parent ne sont que des tables de base de données normales, mais elles sont liées de la manière décrite par une relation parent-enfant.

Il est généralement utilisé pour spécifier où la valeur d’une table fait référence à la valeur d’une autre table (généralement une clé primaire d’une autre table).

Par exemple, imaginez un article de presse. Cela pourrait être représenté par une table appelée articles et contient des champs pour id, headline, body, published_date et author. Mais au lieu de placer un nom dans le champ author, vous pouvez également placer la valeur d'ID d'un utilisateur dans un tableau séparé, appelé éventuellement authors, contenant des informations sur les auteurs telles que id, name et email.

Par conséquent, si vous devez mettre à jour le nom d’un auteur, vous ne devez le faire que dans la table authors (parent); car la table articles (enfant) ne contient que l'ID de l'enregistrement author correspondant.

J'espère que cela vous aide à mieux comprendre.

30
Martin Bean

Sachez que vous pouvez avoir des relations qui semblent être parent-enfant mais ne le sont pas, par exemple lorsque des tables de recherche sont utilisées. La différence est que, dans une véritable relation parent-enfant, les enregistrements ne sont généralement pas très propres. Ce sont des enregistrements de détail pour le parent et ne sont pas utiles sans les informations de la table parent. Une personne peut posséder plusieurs voitures dans la base de données DMV, mais vous ne voudriez pas d'enregistrements dans la table CARS sans un enregistrement parent dans la table OWNERS - ce seraient des données presque inutiles.

D'autre part, si j'utilise une table de recherche pour développer un code en quelque chose de plus significatif ou pour contraindre l'entrée de données à des valeurs acceptables, l'enregistrement "enfant" peut toujours être utile (peut être autonome) si la table de recherche est supprimée . Je pourrais toujours avoir les informations de sexe sous la forme "M" ou "F" même si je n'ai plus la table de recherche permettant de l'étendre à "Masculin" ou "Féminin".

12
GilmoursBlackStrat

Parent - L'entité du côté "un" (/ 1) d'une relation avec une autre table

Child - Entité du côté "plusieurs" (/ N/*) d'une relation avec une autre table

6
pehur

Une table enfant a tendance à être une table dans laquelle une ou plusieurs clés étrangères pointent vers une autre table. Notez qu'une table enfant peut elle-même être le parent d'une autre table OTHER.

3
Marc B

Ces termes sont utilisés dans les relations de base de données.

par exemple vous avez deux table,

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. day_sequence
+-----------------+------------------+------+-----+---------+----------------+
| 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    |                |
+-----------------+------------------+------+-----+---------+----------------+

si vous voulez connecter ces deux tables, vous devez utiliser la commande avec le format suivant.

> ALTER TABLE child_table_name ADD FOREIGN KEY (P_ID) REFERENCES
> parent_table_name (P_ID)

et ainsi il devient.

> ALTER TABLE day_sequence ADD CONSTRAINT fk_manifast FOREIGN KEY
> (manifast_Id) REFERENCES manifast(manifast_Id);

En résumé, la table Child est une table qui a une clé étrangère et est connectée à partir d'une autre table . La table parente n'a pas de clé étrangère et se connecte à other . [Note: Ceci est juste pour connecter deux les tables ]

1
KaungKhant MinTun