Bonjour Tous le monde comme à mon habitude lorsque je ne suis pas sûr de quelque chose, je me tourne vers vous.
Voici mon souici :
Je souhaites créer une messagerie interne avec laravel, jusque la pas de souci. Mais ..
Comment structurer ma base de donnée, sachant que je souhaites avoir les fontions suivantes :

Tous les messages (ca ok)
Ajouter un messsage (ca ok)
Messages non lu (ca ok)
Supprimer un message la ca merdouille dans mon cerveau d'autodidact

Alors voici ma table :


Schema::create('inboxes', function (Blueprint $table) {
            $table->increments('id');
            $table->unsignedInteger('from');
            $table->unsignedInteger('to');
            $table->string('titre');
            $table->longText('message');
            $table->boolean('read')->default('0');
            $table->timestamps();
        });

Avce cette structure si From efface le message alors To ne le voit plus et inverssément
J'ai bien pensé à faire un update du message temps que From et To ne sont pas à 0, mais ce ne me paraît pas la bonne solution
De plus je ne veux bien évidement pas duppliquer le message
Qu'elle serait donc la bonne structure à adopter ?

Merci d'avance pour votre aide :)

2 réponses


Lartak
Réponse acceptée

Bonjour.
Tu pourrais par exemple ajouter deux champs : trash_from et trash_to qui auraient comme valeur par défaut 0, selon celui qui veut supprimer le message tu modifies la valeur du champ qui lui correspond et tu attaches un Event qui vérifiera que si les champs des deux utilisateurs est à 1 » suppression du message.
Du coup il faudra que dans ta requête pour afficher les messages que tu ajoutes la condition que la valeur du champ correspondant ne soit pas à 0.

Shark
Auteur

Merci beaucoup pour ta réponse et désolé de te remercier si tardivement. J'ai suivi ton conseil et concernant l'Events, j'ai fais un simple script via une tâche cron vu que d'autre vont se greffées dans ce script.