<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="centered">|message>[L'Entretien]</div>
<div class="bottom">|message>[[[Commencer|Commencer]]]</div></div>
<style>
.bottom {
position: absolute;
bottom: 5%;
left: 50%;
transform: translateX(-50%);
width: auto;
margin: 0 auto;
background-color: rgba(0, 0, 0, 0.6);
padding: 10px;
border-radius: 15px;
}
.centered {
position: absolute;
/*font-size: 4.5 ou 9rem;*/
font-size: 9vh;
top: 40%;
left: 50%;
transform: translateX(-50%);
width: auto;
height: 10rem;
margin-top: auto;
margin-bottom: 0;
background-color: rgba(0, 0, 0, 0.6);
color: floralwhite;
padding: 4.5rem 2rem 1rem 2rem;
border-radius: 15px;
}
</style>
(enchant: ?message's chars, via (t8n-delay:pos * 250) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/building.jpeg" class= "background">
<div class="rect-pnj">|message>[A peine votre diplôme de <i>Master of Science in Learning and Teaching Technologies</i> en poche, vous avez décroché un entretien dans la boîte de vos rêves. Toutefois, un ancien camarade a déjà tenté sa chance et vous a mis en garde : leurs méthodes de recrutement sont un peu... atypiques...]</div>
<div class="rect-user">|message>[[[Continuer|wait]]]</div></div>
<style>
@keyframes anim-hue {
0% {filter: hue-rotate(0turn);}
100% {filter: hue-rotate(1turn);}
}
i {
color: #ad8762;
animation: anim-hue 1s linear 0s infinite;
}
</style>
(enchant: ?message's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-angry.png" class= "face"><span>*Vous entrez dans le bureau.*<br><br>(text-colour:#c1b091)[Ah, c'est aujourd'hui ? Pourquoi ils vous ont dit de venir aujourd'hui ??]</span></div>
<div class="rect-user">[[• Euh... Je crois bien que c'est vous qui m'avez donné ce rendez-vous...]]
[[• C'est vrai, qui aime les lundis ?!]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/reception.jpeg" class= "background">
<div class="rect-pnj">|message>[*Vous êtes à la réception de l'entreprise.*
"Asseyez-vous quelques minutes, je vais prévenir M. Muller que vous êtes arrivé."]</div>
<div class="rect-user">|message>[ [[• Patienter]]<br>[[• Réviser]]]</div></div>
<style>
</style>
(enchant: ?message's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/reception.jpeg" class= "background">
<div class="rect-pnj">|message>[*Quelques instants plus tard...*
"C'est tout bon, vous pouvez y aller, ce sera la quatrième porte à droite, au fond du couloir sur votre droite."]</div>
<div class="rect-user">|message>[[[Se lever et aller dans le bureau de M. Muller|1]]]</div></div>
(enchant: ?message's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-talk.png" class= "face"><span>(text-colour:#c1b091)[...]</span></div>
<div class="rect-user">[[...|1bis]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 400) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-talk.png" class= "face"><span>(text-colour:#c1b091)[...]</span></div>
<div class="rect-user">[[...|1bis]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 400) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-angry2.png" class= "face"><span>(text-colour:#c1b091)[Le lundi est mon jour préféré...<br> Symbole d'éternel recommencement, c'est le jour de la résurrection après la léthargie du week-end. C'est la symphonie de l'aube, jouée par un orchestre de klaxons. C'est un maelström d'emails, un festin de réunions. C'est la danse des chiffres. L'étreinte des plannings. La caresse des deadlines.<br>D'aileurs, je suis né un lundi.]</span></div>
<div class="rect-user">[[...|ready]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-myst.png" class= "face"><span>(text-colour:#c1b091)[Bon, ne perdons pas plus de temps.<br><br>J'ai juste quelques questions à vous poser pour savoir ce que vous valez.<br><br>Et si vous parvenez à m'impressionner, je vous confierai un secret...<br><br><b>VOUS ETES PRET ?<b>]</span></div>
<div class="rect-user">[[Oui, allons-y !|Q1]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-angry.png" class= "face"><span>(text-colour:#c1b091)[Très bien.<br><br>Imaginez que vous deviez créer une base de données pour gérer différents modules de formation contenant des exercices. Chaque module et chaque exercice est sous la responsabilité d’un•e ingénieur•e techno-pédagogique.<br><br>Quel type de base de données devriez-vous utiliser ?]</span></div>
<div class="rect-user">[[• Une base de données NOSQL.|1faux]]
[[• Une base de données Excel.|1faux2]]
[[• Une base de données relationnelle.|1juste]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 30) +(t8n-skip:100s) + (t8n:'instant'))
(set: $score to 100)<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-talk.png" class= "face"><span>(text-colour:#c1b091)[Oui, c'est bien ça. Je vois que vous n'êtes pas qu'un simple gratte-papier universitaire...]</span></div>
<div class="rect-user">[[Merci...|Q2]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-angry2.png" class= "face"><span>(text-colour:#c1b091)[Mais voyons, quelle idée ! Une base NOSQL n’est pas du tout appropriée. Si vous aviez quelques notions techniques, vous auriez immédiatement choisi une base de données relationnelle pour ce scénario.]</span></div>
<div class="rect-user">[[Ma langue a fourché...|Q2]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))
(set: $score to it - 10)<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-angry.png" class= "face"><span>(text-colour:#c1b091)[Ne fanfaronnez pas trop...<br><br>Quel est le rôle de SQL dans une base de données ?]</span></div>
<div class="rect-user">[[• C'est un framework pour gérer l'UI de bases de données.|2faux]]
[[• C'est un langage qui sert à créer et manipuler des bases de données.|2juste]]
[[• C'est un IDE pour convertir des données front-end en bases de données relationnelles.|2faux2]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-angry2.png" class= "face"><span>(text-colour:#c1b091)[Faux ! SQL n'est pas un framework. C'est un langage spécifique aux bases de données, utilisé pour créer, manipuler, et interroger des bases de données. Il ne gère pas directement l'interface utilisateur des bases de données.]</span></div>
<div class="rect-user">[[J'y étais presque...|Q3]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))
(set: $score to it - 10)<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-angry.png" class= "face"><span>(text-colour:#c1b091)[Restez concentré...<br><br>Pourquoi une clé primaire est-elle aussi importante qu'un passeport pour une personne ?]</span></div>
<div class="rect-user">[[• Comme un passeport pour une personne, une clé primaire sert à identifier de manière unique chaque entrée dans une table de base de données.|5juste]]
[[• Comme un passeport pour une personne, une clé primaire sert à vérifier l'authenticité de chaque enregistrement.|5faux]]
[[• Comme un passeport pour une personne, une clé primaire permet d'accéder à toutes les données de la base de données.|5faux2]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-angry.png" class= "face"><span>(text-colour:#c1b091)[Quel genre de question posée à un bibliothécaire est similaire à une requête SQL ?]</span></div>
<div class="rect-user">[[• Une demande comme "pourriez-vous m'aider à trouver un roman japonais du XIXe siècle ?"|6juste]]
[[• Une demande comme "pourriez-vous m'aider à trouver un roman intéressant pour ma mère ?"|6faux]]
[[• Une demande comme "combien de bandes dessinées ont été empruntées et retournées le mois dernier ?"|6faux2]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-angry.png" class= "face"><span>(text-colour:#c1b091)[Imaginez que vous ayez deux tables : "Employés" et "Blâmes/Avertissements". Comment établiriez-vous une relation entre ces deux tables à l'aide de clés primaires et étrangères ?]</span></div>
<div class="rect-user">[[• Je créerais une clé primaire dans la table "Blâmes/Avertissements" qui correspond à la clé étrangère de la table "Employés".|7faux]]
[[• Je créerais une clé étrangère dans la table "Blâmes/Avertissements" qui correspond à la clé primaire de la table "Employés".|7juste]]
[[• Je créerais une clé étrangère dans la table "Employés" qui correspond à la clé primaire de la table "Blâmes/Avertissements".|7faux2]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-talk.png" class= "face"><span>(text-colour:#c1b091)[Oui, c'est bien ça.]</span></div>
<div class="rect-user">[[*Continuer*|Q6]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-angry2.png" class= "face"><span>(text-colour:#c1b091)[C'est incorrect. La clé primaire n'est pas utilisée pour vérifier l'authenticité des enregistrements, mais plutôt pour assurer leur unicité dans la table.]</span></div>
<div class="rect-user">[[Je comprends mieux maintenant.|Q6]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))
(set: $score to it - 10)<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-shocked.png" class= "face"><span>(text-colour:#c1b091)[C'est correct... Votre proposition est similaire à une requête SQL, car elle demande un filtrage de données spécifiques.]</span></div>
<div class="rect-user">[[*Continuer*|Q7]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-angry2.png" class= "face"><span>(text-colour:#c1b091)[Pas du tout. Dans SQL, nous formulons des requêtes spécifiques pour extraire, modifier, ou manipuler des données dans une base de données, généralement basées sur des critères précis. A l'inverse, votre proposition est subjective, elle dépend de l'opinion personnelle du bibliothécaire et de sa connaissance des préférences de lecture de votre mère...]</span></div>
<div class="rect-user">[[La nuance est intéressante.|Q7]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))
(set: $score to it - 10)<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-shocked.png" class= "face"><span>(text-colour:#c1b091)[Exactement ! Vous établiriez ainsi une relation explicite entre les employés et leurs blâmes/avertissements respectifs !!]</span></div>
<div class="rect-user">[[*Continuer*|Q8]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-angry2.png" class= "face"><span>(text-colour:#c1b091)[C'est incorrect. Les clés primaires sont uniques pour chaque entrée dans une table. Vous ne pouvez pas avoir une clé primaire dans une table qui correspond à une clé étrangère dans une autre table, car les clés étrangères sont généralement des doublons de la clé primaire dans une autre table.]</span></div>
<div class="rect-user">[[Présenté comme cela, ça semble évident...|Q8]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))
(set: $score to it - 10)<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-angry.png" class= "face"><span>(text-colour:#c1b091)[Supposons que vous ayez une table "Flippers" avec une colonne "Date de maintenance". Comment effectueriez-vous une requête pour sélectionner tous les flippers dont la date de maintenance est antérieure à 1990 ?]</span></div>
<div class="rect-user">[[• J'utiliserais la requête SQL suivante : "SELECT * FROM Flippers WHERE Date de maintenance < '1990-01-01'".|8juste]]
[[• J'utiliserais la requête SQL suivante : "SELECT * FROM Flippers WHERE Date de maintenance = '1990-01-01'".|8faux]]
[[• J'utiliserais la requête SQL suivante : "SELECT Date de maintenance FROM Flippers WHERE Date de maintenance < '1990-01-01'".|8faux2]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-happy1.png" class= "face"><span>(text-colour:#c1b091)[Oui !! Cette requête sélectionnerait toutes les entrées de la table "Flippers" dont la date de maintenance est antérieure à 1990 !]</span></div>
<div class="rect-user">[[*Continuer*|Q9]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-angry2.png" class= "face"><span>(text-colour:#c1b091)[C'est incorrect. Cette requête SQL sélectionnerait tous les flippers dont la date de maintenance est exactement le 1er janvier 1990, pas ceux dont la date de maintenance est antérieure à 1990.]</span></div>
<div class="rect-user">[[J'en prends note.|Q9]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))
(set: $score to it - 10)<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-angry.png" class= "face"><span>(text-colour:#c1b091)[Dans une base de données d'entomologie, comment pourriez-vous utiliser une requête GROUP BY pour obtenir le nombre de papillons par couleur ?]</span></div>
<div class="rect-user">[[• J'utiliserais la requête SQL suivante : "SELECT Couleur, COUNT(*) FROM Papillons GROUP BY Couleur".|9juste]]
[[• J'utiliserais la requête SQL suivante : "SELECT Couleur FROM Papillons GROUP BY Couleur".|9faux]]
[[• J'utiliserais la requête SQL suivante : "SELECT COUNT(*) FROM Papillons".|9faux2]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-happy2.png" class= "face"><span>(text-colour:#c1b091)[OUI !!! Cette requête compterait le nombre de papillons pour chaque couleur distincte dans la base de données !!!]</span></div>
<div class="rect-user">[[*Continuer*|Q10]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-angry2.png" class= "face"><span>(text-colour:#c1b091)[C'est incorrect. Bien que cette requête SQL regroupe bien les papillons par couleur, elle ne fournit pas le nombre de papillons pour chaque couleur.]</span></div>
<div class="rect-user">[[Je saurai m'en souvenir.|Q10]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))
(set: $score to it - 10)<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-angry.png" class= "face"><span>(text-colour:#c1b091)[Imaginez que vous conceviez une base de données pour une gallerie d'art NFT. Quelles tables créeriez-vous et quelles informations y incluriez-vous ?]</span></div>
<div class="rect-user">[[• Je créerais des tables "Artistes", "Oeuvres", et "Transactions". "Artistes" contiendrait des informations telles que l'ID de l'artiste, le nom, la biographie, etc. "Oeuvres" inclurait l'ID de l'œuvre, l'ID de l'artiste, le titre, la description, l'URL de l'image, etc. "Transactions" inclurait l'ID de la transaction, l'ID de l'acheteur, l'ID de l'œuvre, le prix, la date, etc.|10juste]]
[[• Je créerais une seule table "NFT" qui contiendrait toutes les informations nécessaires, telles que les détails de l'artiste, les détails de l'œuvre et les détails de la transaction.|10faux]]
[[• Je créerais des tables "Artistes" et "Oeuvres" mais pas de table "Transactions". Les informations sur les transactions seraient stockées dans la table "Oeuvres".|10faux2]]
[[• Pas besoin de tables avec les NFT, car toutes les données sont dans la blockchain.|10faux3]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 20) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-happy2.png" class= "face"><span>(text-colour:#c1b091)[Mais oui ! Quelle virtuosité !!]</span></div>
<div class="rect-user">[[Merci beaucoup.|bilan]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-angry2.png" class= "face"><span>(text-colour:#c1b091)[C'est incorrect. Une seule table rendrait la gestion des données complexe et inefficace. Il est préférable de diviser les données en plusieurs tables liées pour une meilleure organisation et performance.]</span></div>
<div class="rect-user">[[C'est ce que je voulais dire...|bilan]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))
(set: $score to it - 10)<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/reception.jpeg" class= "background">
<div class="rect-pnj">|message>[• I. Bases de données relationnelles
Une base de données relationnelle est un système qui permet de stocker et d'organiser des informations. Les informations y sont organisées en "tables", et ces tables peuvent être liées entre elles.
• II. Tables
Une table est une collection d'informations. Par exemple, une table "Livres" peut être créée où chaque ligne représente un livre différent et chaque colonne donne différentes informations sur ce livre (comme le titre, l'auteur, l'année de publication).
• III. Clés
Dans chaque table, il y a généralement une "clé primaire", qui est une information unique pour chaque ligne. Par exemple, dans la table "Livres", l'ISBN est unique pour chaque livre. Ces clés uniques sont parfois utilisées pour relier les tables entre elles, on les appelle alors "clés étrangères".
• IV. SQL
SQL (Structured Query Language) est un langage de programmation utilisé pour interagir avec les bases de données. Avec SQL, il est possible d'ajouter, de récupérer, de modifier ou de supprimer des informations dans la base de données.
Exemples de commandes SQL basiques : SELECT FROM, ORDER BY, INSERT, UPDATE, DELETE...]</div>
<div class="rect-user">|message>[[[Arrêter de réviser|• Patienter]]]</div></div><div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-talk.png" class= "face"><span>(text-colour:#c1b091)[Oui, c'est bien ça.]</span></div>
<div class="rect-user">[[*Continuer*|Q3]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-angry2.png" class= "face"><span>(text-colour:#c1b091)[Votre réponse n'a aucun sens ! Un IDE est un outil de développement logiciel qui fournit des fonctionnalités complètes, comme l'édition de code, le débogage et la compilation. SQL n'est pas un IDE, c'est un langage de programmation dédié aux bases de données qui permet de créer, de modifier et de manipuler des bases de données relationnelles.]</span></div>
<div class="rect-user">[[J'y étais presque...|Q3]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))
(set: $score to it - 10)<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-angry2.png" class= "face"><span>(text-colour:#c1b091)[Excel n'est pas un type de base de données, c'est simplement un tableur. On ne vous a pas appris ça ?]</span></div>
<div class="rect-user">[[Ma langue a fourché...|Q2]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))
(set: $score to it - 10)<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-myst.png" class= "face"><span>(text-colour:#c1b091)[Nous avons terminé. Il était temps...<br><br>Vous avez obtenu un score de $score%.]</span></div>
<div class="rect-user">[(link: "...")[(if: $score <= 30)[(goto: "10faux3")](else-if: $score <= 60)[(goto: "reward-none")](else-if: $score <= 100)[(goto: "reward0")]]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-angry2.png" class= "face"><span>(text-colour:#c1b091)[C'est incorrect. La clé primaire sert à identifier un enregistrement dans une table spécifique, mais elle n'octroie pas l'accès à toutes les données de la base.]</span></div>
<div class="rect-user">[[Je comprends mieux maintenant.|Q6]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))
(set: $score to it - 10)<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-myst.png" class= "face"><span>(text-colour:#c1b091)[C'est incorrect... Votre proposition semble correspondre à une requête SQL, mais elle est erronée dans ce contexte car un bibliothécaire ne pourrait probablement pas répondre à cette question sans consulter une base de données, qui serait interrogée via SQL pour obtenir cette information.]</span></div>
<div class="rect-user">[[La nuance est intéressante.|Q7]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))
(set: $score to it - 10)<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-angry2.png" class= "face"><span>(text-colour:#c1b091)[C'est incorrect. En général, la table "Employés" aurait une clé primaire, et la table "Blâmes/Avertissements" aurait une clé étrangère qui correspond à cette clé primaire. Cela permet de lier chaque blâme/avertissement à un employé spécifique.]</span></div>
<div class="rect-user">[[Présenté comme cela, ça semble évident...|Q8]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))
(set: $score to it - 10)<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-angry2.png" class= "face"><span>(text-colour:#c1b091)[C'est incorrect. Cette requête SQL ne sélectionnerait que la colonne "Date de maintenance" pour les flippers dont la date de maintenance est antérieure à 1990, pas toutes les informations concernant ces flippers...]</span></div>
<div class="rect-user">[[J'en prends note.|Q9]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))
(set: $score to it - 10)<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-angry2.png" class= "face"><span>(text-colour:#c1b091)[C'est incorrect. Cette requête SQL donnerait le nombre total de papillons dans la base de données, mais ne grouperait pas ce nombre par couleur.]</span></div>
<div class="rect-user">[[Je saurai m'en souvenir.|Q10]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))
(set: $score to it - 10)<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-angry2.png" class= "face"><span>(text-colour:#c1b091)[C'est incorrect. Les transactions sont un aspect important de la gestion d'une galerie d'art NFT et devraient être suivies dans leur propre table. Cela permet de garder un historique des transactions et d'effectuer des analyses de ventes.]</span></div>
<div class="rect-user">[[C'est ce que je voulais dire...|bilan]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))
(set: $score to it - 10)<style>
@keyframes fadeOut {
from { opacity: 1;}
to { opacity: 0;}
}
@keyframes fadefix {
from { opacity: 0;}
to { opacity: 0;}
}
img {
animation: fadeOut 7s linear 3s 1, fadefix 10s linear 10s infinite;
height: 100vh;
}
</style><div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-dead.png">
<div class="rect-user">|message>[[[...|out]]]</div></div>
(enchant: ?message's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))
(set: $score to it - 10)<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg">
<div class="centered">|message>[Merci<br><br><br><br>d'avoir<br><br><br><br>joué !]</div>
<div class="bottom">|message>[[[Recommencer|startup]]]</div></div>
<style>
.bottom {
position: absolute;
bottom: 5%;
left: 50%;
transform: translateX(-50%);
width: auto;
margin: 0 auto;
background-color: rgba(0, 0, 0, 0.6);
padding: 10px;
border-radius: 15px;
}
.centered {
position: absolute;
/*font-size: 4.5 ou 9rem;*/
font-size: 7vh;
text-align: center;
top: 33%;
left: 50%;
transform: translateX(-50%);
width: auto;
height: auto;
margin-top: auto;
margin-bottom: 0;
background-color: rgba(0, 0, 0, 0.6);
color: floralwhite;
padding: 2rem 2rem 2rem 2rem;
border-radius: 15px;
}
img {
height: 100vh;
}
</style>
(enchant: ?message's chars, via (t8n-delay:pos * 250) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-myst.png" class= "face"><span>(text-colour:#c1b091)[Votre performance était remarquable.<br>J'ai tout de suite su que vous seriez à la hauteur...<br><br>Comme promis, je vais donc vous révéler un secret...]</span></div>
<div class="rect-user">(link-goto: "...", (either: "reward1", "reward2", "reward3", "reward4", "reward5"))</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-talk.png" class= "face"><span>(text-colour:#c1b091)[1. Vous êtes engagé.<br><br>2. J'ai été conçu un lundi..!]</span></div>
<div class="rect-user">[[...|out]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-happy1.png" class= "face"><span>(text-colour:#c1b091)[1. Vous êtes engagé.<br><br>2. Voici ma chanson préférée ❤<br><br><iframe width="421" height="237" src="https://www.youtube.com/embed/mgY7V-nB3VI" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>]</span></div>
<div class="rect-user">[[...|out]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-happy1.png" class= "face"><span>(text-colour:#c1b091)[1. Vous êtes engagé.<br><br>2. Voici ma chanson préférée ❤<br><br><iframe width="421" height="237" src="https://www.youtube.com/embed/UbkwELpUhmA" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>]</span></div>
<div class="rect-user">[[...|out]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-myst.png" class= "face"><span>(text-colour:#c1b091)[Le nouveau réceptionniste est un parfait incompétent ; il ne sait pas distinguer sa gauche de sa droite...<br><br>Cela fait maintenant deux semaines que cet idiot m'envoie tous les candidats de M. Muller, dont le bureau est juste en face...<br><br>Mais sachez que si cela ne tenait qu'à moi, vous seriez engagé sur-le-champ...]</span></div>
<div class="rect-user">[[...|out]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-happy2.png" class= "face"><span>(text-colour:#c1b091)[1. Vous êtes engagé.<br><br>2. Voici ma chanson préférée ❤<br><br><iframe width="421" height="237" src="https://www.youtube.com/embed/7Q27Xh5fSwg" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>]</span></div>
<div class="rect-user">[[...|out]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-angry.png" class= "face"><span>(text-colour:#c1b091)[Bon, eh bien... *merci*...<br><br>On vous...<br><br>*"rappellera"*...]</span></div>
<div class="rect-user">[[...|out]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 150) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-angry.png" class= "face"><span>(text-colour:#c1b091)[Reprenons notre exemple de base de données pour gérer différents modules de formation contenant des exercices.<br>Sachant qu'un module est sous la responsabilité d'un•e ingénieur•e techno-pédagogique, qu'il regroupe une quantité indéterminée d'exercices, et qu'il a un nom, proposez la structure de l'entité "Modules".]</span></div>
<div class="rect-user">[[• "id", "nom", "id du responsable pédagogique", "liste des exercices"|3faux]]
[[• "nom", "id du responsable pédagogique"|3faux2]]
[[• "id", "nom", "id du responsable pédagogique"|3juste]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-angry.png" class= "face"><span>(text-colour:#c1b091)[Toujours dans l'exemple de base de données pour gérer différents modules de formation contenant des exercices, imaginez que vous avez créé vos trois entités.<br>Qualifiez maintenant l'association qui relie les modules aux exercices.]</span></div>
<div class="rect-user">[[• C'est une relation de type "un à plusieurs". Les modules ont pour attribut la liste des exercices correspondants.|4faux]]
[[• Il y a plusieurs modules et plusieurs exercices ; il s'agit donc d'une relation "plusieurs à plusieurs" où les modules et les exercices sont interdépendants.|4faux2]]
[[• C'est une relation de type "un à plusieurs". Les exercices ont pour attribut la clé primaire du module auquel ils appartiennent.|4juste]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-talk.png" class= "face"><span>(text-colour:#c1b091)[Parfaitement, c'est la bonne réponse ! Il faudra utiliser des associations pour relier un module à ses exercices !]</span></div>
<div class="rect-user">[[*Continuer*|Q4]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-angry2.png" class= "face"><span>(text-colour:#c1b091)[Mauvaise réponse, on ne peut pas mettre une liste dans une entité ! Dommage, le reste de votre proposition était très bon...]</span></div>
<div class="rect-user">[[J'y étais presque...|Q4]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))
(set: $score to it - 10)<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-angry2.png" class= "face"><span>(text-colour:#c1b091)[Mais enfin, pas de clé primaire ? Comment ferez vous pour retrouver vos modules ?? Il faut inclure la clé primaire dans votre entité !!]</span></div>
<div class="rect-user">[[J'y étais presque...|Q4]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))
(set: $score to it - 10)<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-angry2.png" class= "face"><span>(text-colour:#c1b091)[...Non. Stocker la liste dans le module nous obligerait à ajouter un attribut par exercice ; cela compliquerait énormément la base de données, et obligerait régulièrement à en modifier la structure afin de pouvoir gerer des modules plus grands. La bonne réponse est une relation de "un à plusieurs", dans laquelle l'exercice a pour attribut la clé du module qui correspond. Ainsi, on peut aisément retrouver le module qui correspond à chaque exercice, et filtrer les exercices pour constituer la liste de ceux qui appartiennet à un module donné.]</span></div>
<div class="rect-user">[[J'y étais presque...|Q5]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 20) +(t8n-skip:100s) + (t8n:'instant'))
(set: $score to it - 10)<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-angry2.png" class= "face"><span>(text-colour:#c1b091)[C'est une mauvaise réponse. Puisque la relation caractérise les liens entre un module et les exercices correspondants, il s'agit donc d'une relation "un à plusieurs", dans laquelle l'exercice a pour attribut la clé du module qui correspond. Ainsi, on peut aisément retrouver le module qui correspond à chaque exercice, et filtrer les exercices pour constituer la liste de ceux qui appartiennent à un module donné.]</span></div>
<div class="rect-user">[[J'y étais presque...|Q5]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 20) +(t8n-skip:100s) + (t8n:'instant'))
(set: $score to it - 10)<div class="container"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bureau.jpeg" class= "background">
<div class="rect-pnj"><img src="https://tecfaetu.unige.ch/etu-maltt/concordia/goffint9/autres/data-game-assets/bigface-shocked.png" class= "face"><span>(text-colour:#c1b091)[...Bonne réponse ! Ainsi, nous pouvons aisément retrouver le module qui correspond à chaque exercice, et filtrer les exercices pour constituer la liste de ceux qui appartiennet à un module donné.]</span></div>
<div class="rect-user">[[*Continuer*|Q5]]</div></div>
(enchant: ?passage's chars, via (t8n-delay:pos * 40) +(t8n-skip:100s) + (t8n:'instant'))