2 4 GRAILS MODELISATION — Transcript
Full transcript
- 0:00parlons maintenant de la modélisation
- 0:02commençons cette discussion sur la
- 0:05modélisation en parlant un petit peu
- 0:07d'héritage l'héritage est quelque chose
- 0:09que nous pratiquons régulièrement en
- 0:11tant que développeur java les
- 0:13développeurs java aime beaucoup l
- 0:15héritage mais nous sommes dans un
- 0:17environnement avec un om et les horaires
- 0:19m de base n'aime pas l'héritage de
- 0:23manière générale on va essayer autant
- 0:25que possible autant qu'il est
- 0:27raisonnable de le faire d'éviter de
- 0:30faire de l'héritage cependant vous devez
- 0:32être au courant de ce que va impliquer
- 0:34cet héritage au niveau de la persistance
- 0:37de vos données et c'est ce que nous
- 0:38allons voir dans cette partie par défaut
- 0:41lorsque l'on fait de l'héritage
- 0:43l'om va rassembler toutes les propriétés
- 0:46de toutes les classes qui hérite dans
- 0:48une même table et cela présente
- 0:51plusieurs inconvénients déjà d'une part
- 0:53nous allons nous retrouver avec une
- 0:54table qui va être assez conséquente en
- 0:57termes de taille d'autre part si on
- 0:59regarde l'exemple que je vous donne vous
- 1:02avez une classe user si vous avez une
- 1:04classe clients qui externe sueur et vous
- 1:06avez une classe prospère qui extends là
- 1:09aussi user ce qui veut dire que dans un
- 1:12cas normal nous allons nous retrouver
- 1:13avec une table user avec toutes les
- 1:17propriétés de toutes ses classes au delà
- 1:19du fait que cette table commence à être
- 1:21conséquente bon même s'il en est cela
- 1:24reste relativement raisonnable pour
- 1:25l'instant le problème que nous avons
- 1:27c'est que lorsque nous allons créer un
- 1:29client
- 1:31ce client n'aura pas de prospects cref
- 1:34par exemple
- 1:36ce qui veut dire que prospects cref sera
- 1:38forcément un nul lorsque l'on bat créé
- 1:42dans notre base de données un client de
- 1:45la même façon la kleienn bref sera
- 1:47défini annuler pour tous les prospects
- 1:49qui seront créés dans notre base de
- 1:51données le problème lié à ça c'est que
- 1:53vous vous en doutez nous n'avons
- 1:56absolument aucune possibilité de forcer
- 1:59un champ dans une table liée à un
- 2:03héritage annuler tous les chansons
- 2:06forcément nul et veulent
- 2:09sinon nous n'aurions pas la possibilité
- 2:11de créer un prospect ou un client
- 2:14cette contrainte relatives à l'aspect
- 2:17non nul le tout les champs dans une
- 2:19table qui est lié à de l'héritage
- 2:22peut-être un problème mais nous en
- 2:24discuterons un tout petit peu plus tard
- 2:26voyons comment la base de données se
- 2:28comporte lorsque nous avons deux les
- 2:30laitages et que nous créons quelques
- 2:32entités liées à cet héritage en exemple
- 2:35que vous voyez ci dessous je crée un
- 2:37user et si un client et un prospect ici
- 2:42dans la base de données on allons
- 2:45regarder ce qui s'y trouve je vais
- 2:46trouver les trois enregistrements
- 2:48correspondant aux trois instances que
- 2:50j'ai créé plus haut
- 2:53ici utilisateurs ici le client est ici
- 2:57le prospect vous voyez bien que les
- 2:59champs qui ne sont pas pertinents sont
- 3:01systématiquement mis à nu vous voyez
- 3:05notre part que nous avons une colonne
- 3:06que nous n'avons absolument pas spécifié
- 3:08la colonne classe qui va permettre à
- 3:12l'om de savoir de quelle classe il
- 3:14s'agit sur l'enregistrement en question
- 3:16le comportement que nous constatons la
- 3:19est un comportement par défaut qui
- 3:21s'appelle le table' père hiérarchie
- 3:24c'est à dire que tous les
- 3:26enregistrements et toutes les colonnes
- 3:28seront rassemblés dans une seule et même
- 3:30table il existe une autre possibilité
- 3:33qui permet de changer la façon dont les
- 3:36tables sont créés nous avons la
- 3:38possibilité de surcharger ce
- 3:40comportement en définissant que nous ne
- 3:41souhaitons pas avoir une table par
- 3:44hiérarchie mais nous souhaitons avoir
- 3:46une table par sous-classe 'table père se
- 3:50classe en spécifiant cette option nous
- 3:53allons changer la façon dont les données
- 3:56vont être stockés dans notre base de
- 3:57données et vous voyez que en spécifiant
- 4:00ici table' périr archi falls je vais
- 4:04forcer l'autre comportement ce qui va
- 4:06changer la façon dont les données sont
- 4:08présentes dans ma base de données dans
- 4:10le même exemple strictement que dans le
- 4:13premier cas je me retrouve non plus avec
- 4:15une seule table mais avec trois tables
- 4:17une table pour chacune des classes vous
- 4:20remarquerez que la table user contient
- 4:23toutes les données de base est que les
- 4:26tables clients et les tables prospects
- 4:28contiennent uniquement les données qui
- 4:30sont relatives et spécifiques à leur
- 4:32classe
- 4:33l'avantagent de cette approche est que
- 4:35l'on n'a pas de colonne qui sera quasi
- 4:39systématiquement inutiles ou en tous cas
- 4:41me annuels dans tous les cas on va
- 4:43économiser de l'espace disque puisque on
- 4:45ne va pas stocker des enregistrements
- 4:47avec une partie des données qui est vide
- 4:49par contre le contrecoup le saas est que
- 4:52chaque requête va engendrer un job au
- 4:56niveau de la base de données dans la
- 4:58mesure où lorsque l'on va demander un
- 5:00client par exemple ou un prospect et
- 5:03bien la requête sera fait sur la table
- 5:05deux heures et il y aura un john sur les
- 5:08autres tables ensuite si besoin donc le
- 5:11coût d'exécution en termes de
- 5:13processeurs et supérieur
- 5:15par contre le coût en terme de stockage
- 5:17est inférieure il n'y a pas de meilleur
- 5:20choix systématique c'est à vous de voir
- 5:23en fonction de votre contexte en
- 5:25fonction de la façon dont vous allez
- 5:27utiliser votre héritage et des
- 5:29différentes classes c'est à vous de voir
- 5:31quel est selon vous le meilleur choix
- 5:34après ça par contre le framework gère
- 5:37l'héritage tout à fait correctement
- 5:40comme vous pouvez le voir dans l'exemple
- 5:42ci dessous si je demande à mon framework
- 5:45de faire le rendu de la liste intégrale
- 5:48de tous les utilisateurs comme c'est
- 5:50fait ici je vais même retrouvé avec la
- 5:54liste de tous les utilisateurs
- 5:55peu importe ils sont d user des clients
- 5:59ou des prospects et les utilisateurs
- 6:02seront s'est réalisé de la bonne façon
- 6:04systématiquement
About this transcript
This page contains the full transcript of 2 4 GRAILS MODELISATION by DATUM ACADEMY, generated from the public captions YouTube serves with the video. The transcript has 959 words across 150 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.
What you can do with it
Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to choose a caption track available on the video.
Free YouTube transcript tool
YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, caption language selection, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.