Skip to content
Snippets Groups Projects
2.2.1Columns.md 2.79 KiB

Description des colonnes (columns)

Pour le modèle de référentiels,

  classDiagram
    direction BT
    sites *-- parcelles:site
    agroecosystem  *-- sites
    class sites {
       Agroecosystem agroecosystem
    }
    class parcelles {
       Sites site
    }

et pour les fichiers :

  • agroecosystem.csv
nom
prairie
  • sites.csv
Agroécosystème nom du site
prairie site1
prairie site2
  • parcelles.csv
nom du site nom de la parcelle
site1 1
site2 1

on aura le yaml suivant

references:
  agroecosystem:
  #donnée de référence avec une clef sur une colonne
    keyColumns: [nom]
    columns:
      nom:
    nom
  sites:
  #donnée de référence avec une clef sur une colonne
    keyColumns: [site]
    columns:
      agroecosystem:
        headerName: Agroécosystème
      site:
        headerName: nom du site
  parcelles:
  #donnée de référence avec une clef sur deux colonnes
    keyColumns: [site,nom de la parcelle]
    columns:
      site:
        headerName: nom du site
      parcelle:
        headerName: nom de la parcelle

La clef du référentiel est soumise à des restrictions. Voir la déclaration des dentificateurs

Si vous souhaitez toutefois avoir un nom plus explicite, utilisez la section internationalizationName

references:
  mon_nom_de_referentiel:
      internationalizationName:
          fr: Mon nom de référentiel
          en: The reference name

> ![](../warning.png) Il en est de même pour les clefs des colonnes [(cf. *Identificateurs*)](#identificateur). De plus dans les vues, le nom de la colonne peut être 
> utilisé en concaténation avec d'autres mots. Postgresql contraint ces noms à ne pas dépasser 63 caractères.
> 
> Préférez des noms courts. Si ces nom ne correspondent pas à celui de l'en-tête de votre fichier, préciser le nom de 
> l'en-tête dans le champ "headerName"
> 
> exemple: 
> ``` yaml
>       parcelle:
>         headerName: nom de la parcelle
> ```


Pensez à mettre le même nom de colonnes dans le fichier *.csv* que dans la partie *columns* du fichier yaml.

> ![](../warning.png) <span style="color: orange">*references* n'est pas indenté. *sites* et *parcelles* sont indentés de 1. *keyColumns* et
*columns* sont indentés de 2. Le contenu de *columns* seront indenté de 3.</span>

On peut rendre une colonne facultative en rajoutant dans la description de la colonne l'information :
```yaml
references:
  mareference:
    columns:
      maColonneFacultative:
        presenceConstraint: OPTIONAL

La valeur par défaut est :

        presenceConstraint: MANDATORY