> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-fbfa8bee.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Dictionnaires hiérarchiques

> Configurez des dictionnaires hiérarchiques avec des relations parent-enfant entre clés.

<div id="hierarchical-dictionaries">
  ## Dictionnaires hiérarchiques
</div>

ClickHouse prend en charge les dictionnaires hiérarchiques avec une [clé numérique](/fr/reference/statements/create/dictionary/attributes#numeric-key).

Considérez la structure hiérarchique suivante :

```text theme={null}
0 (Common parent)
│
├── 1 (United States of America)
│   │
│   └── 2 (California)
│       │
│       └── 3 (San Francisco)
│
└── 4 (Great Britain)
    │
    └── 5 (London)
```

Cette hiérarchie peut être représentée par la table de dictionnaire suivante.

| region\_id | parent\_region | region\_name          |
| ---------- | -------------- | --------------------- |
| 1          | 0              | États-Unis d'Amérique |
| 2          | 1              | Californie            |
| 3          | 2              | San Francisco         |
| 4          | 0              | Grande-Bretagne       |
| 5          | 4              | Londres               |

Cette table contient une colonne `parent_region` qui contient la clé du parent le plus proche de l'élément.

ClickHouse prend en charge la propriété hiérarchique pour les attributs de dictionnaire externes. Cette propriété vous permet de configurer le dictionnaire hiérarchique de manière similaire à ce qui est décrit ci-dessus.

La fonction [dictGetHierarchy](/fr/reference/functions/regular-functions/ext-dict-functions#dictGetHierarchy) vous permet d'obtenir la chaîne des parents d'un élément.

Pour notre exemple, la structure du dictionnaire peut être la suivante :

<Tabs>
  <Tab title="DDL">
    ```sql theme={null}
    CREATE DICTIONARY regions_dict
    (
        region_id UInt64,
        parent_region UInt64 DEFAULT 0 HIERARCHICAL,
        region_name String DEFAULT ''
    )
    PRIMARY KEY region_id
    SOURCE(...)
    LAYOUT(HASHED())
    LIFETIME(3600);
    ```
  </Tab>

  <Tab title="Fichier de configuration">
    ```xml theme={null}
    <dictionary>
        <structure>
            <id>
                <name>region_id</name>
            </id>

            <attribute>
                <name>parent_region</name>
                <type>UInt64</type>
                <null_value>0</null_value>
                <hierarchical>true</hierarchical>
            </attribute>

            <attribute>
                <name>region_name</name>
                <type>String</type>
                <null_value></null_value>
            </attribute>

        </structure>
    </dictionary>
    ```
  </Tab>
</Tabs>

<br />
