{"id":118,"date":"2017-01-06T14:40:28","date_gmt":"2017-01-06T13:40:28","guid":{"rendered":"http:\/\/kelepok.soret.in\/blog\/?p=118"},"modified":"2021-02-02T16:22:42","modified_gmt":"2021-02-02T15:22:42","slug":"modele-de-donnees","status":"publish","type":"post","link":"http:\/\/kelepok.soret.in\/blog\/index.php\/2017\/01\/06\/modele-de-donnees\/","title":{"rendered":"Mod\u00e8le de donn\u00e9es"},"content":{"rendered":"

Bonjour, nous vous pr\u00e9sentons dans cet article notre mod\u00e8le de donn\u00e9es.
\nIl s’agit ici de la version simplifi\u00e9e sans les types.<\/p>\n

Le Mod\u00e8le de Donn\u00e9es<\/h2>\n

\"\"<\/p>\n

Partie blanche<\/h2>\n

Utilisateur<\/strong> : table classique pour stocker un utilisateur de notre application.<\/p>\n

Avatar<\/strong> : Nous avons d\u00e9cid\u00e9 dans un premier temps de cr\u00e9er nos avatar avec une couleur et un symbole. Exemple : ff80aa<\/code> et M<\/code> qui devient ensuite un avatar avec un grand M sur fond bleu.
\nNous avons commenc\u00e9 \u00e0 coder ce que \u00e7a pourrait rendre et nous avons \u00e7a : http:\/\/codepen.io\/juliensoret\/pen\/wovMPQ
\nCela permet d’avoir des avatars personnalisables avec beaucoup de combinaisons tr\u00e8s facilement dans notre application. Nous pensons d’ailleurs g\u00e9n\u00e9rer ces valeurs al\u00e9atoirement \u00e0 la cr\u00e9ation du profil.<\/p>\n

\u00c9v\u00e9nement<\/strong> : La table \u00c9v\u00e9nement<\/code> est le c\u0153ur de notre application : C’est notre \u00ab\u00a0carte\u00a0\u00bb de jeu qui repr\u00e9sente un \u00e9v\u00e9nement dans l’Histoire. Il peut \u00eatre un point donn\u00e9 (ex: Mort de Jeanne D’Arc) auquel cas l’entr\u00e9e ne poss\u00e8de pas de dateFin<\/code>. Il peut \u00eatre un \u00e9v\u00e9nement plac\u00e9 sur une dur\u00e9e (ex: Seconde Guerre Mondiale). Et enfin, il peut \u00eatre un \u00e9l\u00e9ment d\u00e9pendant d’un personnage (ex: Mort de Hitler, Hitler devient chancelier, etc… tous li\u00e9s \u00e0 la table Personnage<\/code>). Le champs Importance<\/code> est l\u00e0 pour d\u00e9finir sur une \u00e9chelle de 1 \u00e0 3, l’importance de l’\u00e9v\u00e9nement dans l’Histoire pour calculer la difficult\u00e9 d’une question (ex: R\u00e9volution Fran\u00e7aise \u00e0 3, Premier chimpanz\u00e9 dans l’Espace \u00e0 1).<\/p>\n

Score<\/strong> : Lorsqu’une partie est jou\u00e9e, nous stockons \u00e0 la fin le score obtenu par le joueur. Nous stockons donc les infos n\u00e9cessaires \u00e0 le r\u00e9utiliser ce score dans les statistiques du joueur. Voir la table Partie<\/code> pour l’attribut du m\u00eame nom.<\/p>\n

Th\u00e8me<\/strong> : Un th\u00e8me est un nom regroupant plusieurs \u00e9v\u00e9nements. Un exemple simple est \u00ab\u00a0Deuxi\u00e8me Guerre Mondiale\u00a0\u00bb qui regroupe tous les \u00e9v\u00e9nements li\u00e9s \u00e0 cette guerre. Nous utiliserons aussi cette table pour un th\u00e8me \u00ab\u00a0Dipl\u00f4me National du Brevet\u00a0\u00bb pour pouvoir proposer des parties sp\u00e9ciales au coll\u00e9giens.<\/p>\n

Personnage<\/strong> : Un personnage est li\u00e9 \u00e0 des \u00e9v\u00e9nements comme expliqu\u00e9 ci-dessus.<\/p>\n

Partie bleue<\/h2>\n

Nous abordons d\u00e9sormais les tables de couleur bleue sur l’image. Ces tables seront cr\u00e9\u00e9es apr\u00e8s la premi\u00e8re version de l’application. Elles sont li\u00e9es \u00e0 des fonctionnalit\u00e9s de l’application.<\/p>\n

Groupe<\/strong> : Il sera possible de cr\u00e9er un groupe d’utilisateurs. Un groupe ne contient qu’un nom et un avatar et on peut y lier des utilisateurs. Un utilisateur peut \u00eatre dans N groupes et un groupe a un nombre variable de membres.<\/p>\n

Partie<\/strong> : Un administrateur de groupe peut d\u00e9cider de g\u00e9n\u00e9rer des parties pour le groupe. C’est \u00e0 dire qu’un set de questions est enregistr\u00e9 dans le but d’\u00eatre propos\u00e9 \u00e0 l’identique \u00e0 tous ses membres dans le but de les classer selon leurs r\u00e9sultats. Nous n’avons pas jug\u00e9 n\u00e9cessaire d’enregistrer une partie dans un cas diff\u00e9rent.<\/p>\n

Question<\/strong> : Une partie est compos\u00e9e de questions. Une question est, elle, diff\u00e9rente selon de quel mode de jeu elle d\u00e9pend :<\/p>\n

    \n
  • Si la partie est du mode de jeu Contemporains<\/strong> : Elle est alors compos\u00e9e de 5 questions contenant chacune un rep\u00e8re <\/strong>repr\u00e9sentant la carte X dans \u00ab\u00a0X est contemporain de ….\u00a0\u00bb et 4 choix de r\u00e9ponses.<\/li>\n
  • Si la partie est du mode de jeu Ordre Chronologique<\/strong> : Elle est alors compos\u00e9e d’une seule question contenant un rep\u00e8re repr\u00e9sentant la carte plac\u00e9e au d\u00e9but de la partie ainsi que 4 r\u00e9ponses \u00e0 placer tour \u00e0 tour pour reformer la chronologie.<\/li>\n
  • Si la partie est du mode de jeu Frise Chronologique<\/strong> : Elle est alors compos\u00e9 de 5 questions ne contenant aucune r\u00e9ponse! La r\u00e9ponse \u00e9tant retrouvable dans la carte \u00c9v\u00e9nement elle-m\u00eame.<\/li>\n<\/ul>\n

    Conclusion<\/h2>\n

    Les choix \u00ab\u00a0discutables\u00a0\u00bb que nous avons fait sont donc d’utiliser la m\u00eame table Question pour les 3 types, ce qui rend un peu plus complexe \u00e0 comprendre notre fa\u00e7on de la g\u00e9rer. Ainsi que le fait que nous stockons les r\u00e9ponses dans la table Question au lieu de cr\u00e9er une table R\u00e9ponse.
    \nCes deux choix ont \u00e9t\u00e9 fait dans le but d’avoir un mod\u00e8le de donn\u00e9es plus simple.<\/p>\n

    Dans le prochain article, nous parlerons de plus en plus technique car nous d\u00e9marrons les d\u00e9veloppements !<\/p>\n","protected":false},"excerpt":{"rendered":"

    Bonjour, nous vous pr\u00e9sentons dans cet article notre mod\u00e8le de donn\u00e9es. Il s’agit ici de la version simplifi\u00e9e sans les types. Le Mod\u00e8le de Donn\u00e9es Partie blanche Utilisateur : table …<\/p>\n","protected":false},"author":1,"featured_media":119,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[4,2],"tags":[10],"_links":{"self":[{"href":"http:\/\/kelepok.soret.in\/blog\/index.php\/wp-json\/wp\/v2\/posts\/118"}],"collection":[{"href":"http:\/\/kelepok.soret.in\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/kelepok.soret.in\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/kelepok.soret.in\/blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/kelepok.soret.in\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=118"}],"version-history":[{"count":6,"href":"http:\/\/kelepok.soret.in\/blog\/index.php\/wp-json\/wp\/v2\/posts\/118\/revisions"}],"predecessor-version":[{"id":127,"href":"http:\/\/kelepok.soret.in\/blog\/index.php\/wp-json\/wp\/v2\/posts\/118\/revisions\/127"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/kelepok.soret.in\/blog\/index.php\/wp-json\/wp\/v2\/media\/119"}],"wp:attachment":[{"href":"http:\/\/kelepok.soret.in\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=118"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/kelepok.soret.in\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=118"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/kelepok.soret.in\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=118"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}