Hello !
Bravo pour ta rapidité
. Ce que tu as fait est très bien.
Je vais maintenant t'énoncer quelques critiques constructives
:
1) Liste des modules -> on ne parle pas de modules, mais d'actions. Ici, il s'agit du module message, et celui-ci contient une série d'actions.
2)Certaines actions sont trop généralistes, il faut les décomposer. 1 action = 1 demande de page par l'utilisateur.
Voici une nouvelle liste des actions, selon moi :
- Ecrire un message : créer une discussion
- Ecrire un message : répondre à une discussion en cours (les deux pourraient être regroupés en une seule action)
-
Envoyer un message (pour les deux cas précédents)
- Lire une discussion
- Supprimer une
ou plusieurs discussions (checkbox)
- Déplacer une discussion vers un dossier
- Créer un dossier
-
Renommer un dossier- Supprimer un dossier (ce qui supprime les discussions à l'intérieur)
- Lister les discussions par dossier
- Lister toutes les discussions
- Lister les nouvelles discussions
Des modifications dans ce que tu proposes :
Je tiens tout d'abord à rappeller qu'il existe en bd une seule et unique discussion à chaque fois, c'est la même pour tous les joueurs qui y participent (ce n'est pas clair dans le texte).
Supprimer une discussion :
Une fois qu'il a cliqué sur Supprimer une discussion, le participant est retiré de la discussion (celle ci disparait donc de sa boite). La discussion n'est supprimée définitivement que si tous les participants se sont retirés de la discussion. D'autres part, il est impossible de répondre à une discussion si le nombre de participant est de 1 (en gros, dans une discussion à 2, si l'un se retire, l'autre ne pourra plus répondre). Donc ton histoire de créer une nouvelle discussion, on oublie
.
Il faut bien sur qu'on créé un dossier qui a le même nom pour tous (créé en même temps que le compte du joueur est créé). Une subtibilité serait de permettre de le supprimer, comme n'importe quel dossier, tant qu'il reste au moins 1 dossier existant. Il serait aussi possible de le renommer.
Pour la bd proprement dite :
Déjà quelques remarques sur le nommage : il serait préférable d'appeller la table de discussion mail_thread (ou message_thread, ou un truc du genre) plutôt que thread : il y aura peut-être d'autres tables de thread dans le jeu.
Au niveau d'un .yml, tu dois indiquer explicitement les types des variables, sauf ceux utilisant des conventions de nomages ( id, *_id, created_at, updated_at). Donc pour thread_name par exemple.
Evite de remettre le nom de la table dans le nom des champs, ça surcharge
-> name au lieu de thread_name (idem pour directory).
Les noms des tables sont à mettre au singulier (attenders -> attender).
readed_at -> en anglais, on dit read_at
.
plutôt que 'sender_id' et 'player_id', met toujours 'user_profile_id', qui est la table des utilisateurs du jeu.
Dans un diagramme de classe, on ne met pas les *_id, ce sont les relations qui montrent les clés étrangères.
Dans un diagramme de classe, on écrit les nom de classe comme ça : UneClasse et non pas une_classe (même si ça sera traduit dans la bd par une_table).
Penser à remplacer Table User par UserProfile.
Je ne sais pas pourquoi tu as mis des flêches, mais elles n'ont pas lieu d'être il me semble : on peut toujours retrouver les messages d'un thread, grâce au langage SQL justement.. mais le fait de devoir mettre une navigabilité est à vérifier, moi j'aurai dit non, que c'est réservé à certains cas en POO.
Au niveau des relations :
1 thread possède 1..n attenders (et non pas 1)
1 directory possède 0..n attenders (et non pas 1)
Au niveau du diagramme de navigabilité, il y a quelques points faux :
Dans le menu, il ne peut y avoir 'supprimer discussion' et 'déplacer discussion', ça se fait sur une page en cours, pas dans le menu.
Il manque un lien dans le menu : créer une nouvelle discussion.
Dans un diagramme de navigabilité, on trouve normalement des 'page' et des 'actions'. Une page est le résultat d'une requête GET, et une action est le résultat d'une requete POST. Toute action doit ensuite rediriger vers une autre action ou vers une page.
Il te manque donc l'action 'Envoyer le message', vers laquelle pointent 'créer une nouvelle discussion', et 'Répondre à une discussion'.
'Supprimer un dossier' est une action et non une page. Cette action doit rediriger quelque part.
La page 'créer un dossier' me va (il faut bien donner le nom du dossier), mais derrière il faut une action 'créer un dossier', qui redirige quelque part.
N'hésites pas à re-regarder la modélisation de navigabilité du jeu et à me poser des questions.
C'est tout pour le moment
. Je sais que j'ai écrit pas mal de choses, et je suis certainement un peu trop pointilleux. Mais j'ai voulu faire les choses bien, afin que tu apprennes ce qui se fait et se qui ne se fait pas. J'espère que tu ne m'en veux pas trop
.
Bon courage pour la correction
. Reposte quand tu auras fini, je verrai si d'autres remarques me viennent à l'esprit.
@++
Piwaï