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 les bases de données. Pouvez-vous me montrer un exemple pour que je comprenne comment cela fonctionne?

Merci

24
demandé sur BruceyBandit 2011-10-24 23:33:10

5 réponses

Les tables enfant et les tables parent ne sont que des tables de base de données normales, mais elles sont liées d'une 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 un tableau appelé articles et comporte des champs pour id, headline, body, published_date et author. Mais au lieu de placer un nom dans le author champ, vous pouvez à la place mettre la valeur ID d'un utilisateur dans une table séparée - peut-être appelée authors-qui contient des informations sur les auteurs tels que id, name, et email.

Par conséquent, si vous devez mettre à jour le nom d'un auteur, il vous suffit de le faire 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 aidera à mieux comprendre.

27
répondu Martin Bean 2014-03-09 12:33:55

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 distinction est que dans une véritable relation parent-enfant, les enregistrements ne sont généralement pas les leurs - 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 serait être des données presque inutiles.

D'un autre côté, si j'utilise une table de recherche pour étendre un code à quelque chose de plus significatif, ou pour contraindre la saisie 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 l'information sexuelle comme " M " ou " F "même si je n'ai plus la table de recherche pour l'étendre à "Mâle" Ou "Femelle".

10
répondu GilmoursBlackStrat 2013-07-24 22:22:14

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

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

4
répondu pehur 2016-02-03 20:33:47

Une table enfant a tendance à être une table où elle a une ou plusieurs clés étrangères pointant vers d'autres tables. Notez qu'une table enfant peut également être un parent d'une autre table.

3
répondu Marc B 2011-10-24 19:35:28

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

Par exemple, vous avez deux tables,

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 au 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 enfant est une table qui a une clé étrangère et est connectée à partir d'autres tables. La table Parent n'a pas de clé étrangère et se connecte à d'autres. [Note: Ce ans est juste pour connecter deux tables]

0
répondu KaungKhant MinTun 2014-12-23 04:34:43