JeuWeb - Crée ton jeu par navigateur
Tables MySQL - Messagerie Interne - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Tables MySQL - Messagerie Interne (/showthread.php?tid=97)



Tables MySQL - Messagerie Interne - VerDesRoches - 24-08-2006

Voila, on a commencé a réfléchir au différents champs qui seraient necessaire dans les différentes tables de notre jeu ! On avance pas mal mais on bloque sur des modules annexes ! La messagerie interne surtout !

On a pensé a ses tables la :
-ID (par contre il serais indenté de +1 en fonction des messages du perso ou de tous les messages ?)
-Sujet
-Emetteur
-Recepteur
-Lu (avec False:True)
-Contenu du message

Es-ce suffisant ?

Es-ce que quelqu'un a un script tout fait de messagerie interne de jeu duquel on pourrais s'inspirer ?

Merci d'avance !

VerDesRoches


RE: Tables MySQL - Messagerie Interne - alfanor - 24-08-2006

Personnellement j'ai ces champs ci dans ma messagerie interne :

Citation :id
titre
expediteur
destinataire
message
statut
timestamp

Statut étant l'équivalent de ton 'lu' et timestamp l'heure à laquel le message à était envoyé.

Et pour le champ "id" il faut l'indenter par rapport à la totalité des messages de la table. (enfin l'indenter ... vu que c'est automatique ...)


RE: Tables MySQL - Messagerie Interne - Loetheri - 24-08-2006

Personnellement, j'aurais mis "statut" ou lieu de "lu". Pourquoi ?

Pour simuler la suppression. Cela permet de vérifier si des insultes ont été bien dites, meme si par hasard "le message est supprimé". De plus, cela permet de lire les messages entre deux joueurs si on a des soupçons de triches. Bien entendu, cette possibilité (de fausse suppression) ne doit pas etre dite !


RE: Tables MySQL - Messagerie Interne - Isenduil - 24-08-2006

  • id
  • id_exp
  • id_dest
  • titre
  • contenu
  • timestamp
  • lu

Bon ben ça me semble fort la même chose hein (h)

Citation :Pour simuler la suppression. Cela permet de vérifier si des insultes ont été bien dites, meme si par hasard "le message est supprimé". De plus, cela permet de lire les messages entre deux joueurs si on a des soupçons de triches. Bien entendu, cette possibilité (de fausse suppression) ne doit pas etre dite !

Pas certain de bien avoir compris... Personellement, si le joueur supprime le message (ce qui note bien en cas d'insultes n'est pas le meilluer réflexe), je le conserve trois jours avant qu'il ne soit définitivement effacé de ma base de données.

Je ne vois pas ce que le nom des champs change à ce niveau ?

Citation :Es-ce que quelqu'un a un script tout fait de messagerie interne de jeu duquel on pourrais s'inspirer ?

Tout fait ? :heuuu: Nan ce n'est pas sérieux, pas pour un script de messagerie interne... Un script d'inscription pour débuter passe encore mais là... Wink

S'il y a vraiment panne d'imagination, je peux communiquer le mien bien qu'il ne soit pas des plus beau puisqu'il fut l'un des premiers et que je ne l'aie jamais optimiser...



-- Edit : tant que j'y suis je viens de tomber sur un tuto touchant le sujet - pur hasard - je vous en fait donc part ici --


RE: Tables MySQL - Messagerie Interne - gael - 24-08-2006

Nous avons dit pour nous en inspirer sa ne veut pas dire pour le prendre


RE: Tables MySQL - Messagerie Interne - Loetheri - 24-08-2006

Je réexprime mon idée alors.

Le joueur clique sur "supprimer le message". A ces yeux, il ne verra plus le message bien qu'il existe encore dans la base de données.
En quoi est-ce utile de changer le nom ? Je te réponds d'abord par une question : Pourquoi appelle-t-on un chat un chat ? Simplement pour mieux se comprendre et avoir un systme de référence.
Si tu appelles ton champs "sdfjksdf" alors qu'il conserve le nom du joueur, vas-y pour t'y retrouver sans mode d'emploi ou qu'une autre personne s'y retrouve ;-)

C'est tout Big Grin


RE: Tables MySQL - Messagerie Interne - Horace - 05-09-2006

Pour messagerie, la question essentielle c'est : en 1 ou 2 tables, à savoir le Texte du message est-il dans la même table que Destinataire+sujet+date+... ?

- Intéret de 2 tables : Ca permet les multi-destinataires, sans multiplier le texte + le texte alourdit pas la table de liste de messages (on lit seulement 1 texte à la fois).
- Désavantage : ca complique, id_texte, gestion effacement...etc.

Sinon plutôt que Lu, mettre Statut (1 non-lu, 2 lu, 3 à effacer, 4 insultes...)

Idée : Ajouter un NouveauMessage 0/1 à la table joueur, pour l'avertir ailleurs (connexion?) qu'il a un nouveau message.

Sinon les modules message y'en a plein qui trainent partout sur le net, dans le genre complet/perfectionné (mais gros, plein de fichier). Je conseillerai d'écrire son propre module, tout simple et moche, qui permettra des modifications simples ensuite. Pas besoin de UBB, multi-destinataires et tout au début.


RE: Tables MySQL - Messagerie Interne - naholyr - 05-09-2006

J'utilise personnellement 2 tables, comme Horace l'a précisé ça simplifie grandement le multi-destinataires.
msg_inbox (ID-msg, ID-destinataire, status)
msg_messages (ID-msg, ID-expediteur, texte, date, etc...)

Rien n'empêche d'ajouter un champ "dossier" dans la table msg_inbox pour permettre aux utilisateurs de ranger leurs messages. L'utilisation du flag "status" permet d'avoir une corbeille Wink (on peut avoir un status "lu", "non lu", "corbeille", "supprimme").

Envoi d'un message à X destinataires :
- insertion d'une ligne dans msg_messages, et de X lignes dans msg_inbox (2 requêtes).
Suppression d'un message reçu :
- changement du flag "status" dans msg_inbox (1 requête).
Suppression totale du message (à des fins de nettoyage par exemple) :
- suppression des lignes avec ID-msg=$id_du_message_a_supprimer dans les tables msg_messages et msg_inbox (2 requêtes).

Rien de bien méchant donc Smile