Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/03/2006, 13h44   #1
Invité régulier
 
Inscription : janvier 2006
Messages : 40
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 40
Points : 6
Points : 6
Par défaut [Conception] Ptit soucis de bdd

Bonjour tout le monde.

Je souhaite faire un système de post-it à mon site. C'est à dire que qd il y a qqch de nouveau dans la bdd alors qd la personne se connecte au site un pop up s'ouvre avec un message indiquant le nouveau document ajouté.

Le truc c'est ma bdd comment je fais je dois avoir un auteur du mess, une date, un texte -> ça c'est OK. Par contre je peux avoir un ou plusieurs destinataires (je fais comment??)
Et quand les personnes se connectent il faut vérifier s'il ont un message leur étant destiné si oui alors pop up si non alors index normal.

Comment feriez-vous??
jenny50 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2006, 13h47   #2
Expert Confirmé
 
Avatar de titoumimi
 
Inscription : décembre 2003
Messages : 3 717
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : décembre 2003
Messages : 3 717
Points : 3 082
Points : 3 082
Créer une table "messages_users", avec un id utilisateur et un id message.

Quand un utilisateur se connecte, tu va voir dans cette table, si tu trouve son id, tu affiche le/les messages correspondants...
titoumimi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2006, 13h52   #3
Membre confirmé
 
Inscription : février 2003
Messages : 285
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 285
Points : 255
Points : 255
Envoyer un message via ICQ à Sion_Sempai Envoyer un message via MSN à Sion_Sempai Envoyer un message via Yahoo à Sion_Sempai
un peu de conception des données, ca fait de mal a personne
Y a pas de forum "Merise" ?

Messages:
id_message *
auteur_message
date_message
texte_message


Utilisateurs:
id_user *
nom_user
prenom_user
etc etc


userHASmessage:
id_message *
id_user *
msg_lu

(les * représentent des clé primaires.)

ainsi lorsque ton utilisateur se connecte tu vérifie dans la table userHASmessage si à l'indicateur msg_lu, il a lu les messages qui lui sont adressé. Sinon, tu les lui affiches et tu changes l'indicateur.


euh... C'etait francais ?
Sion_Sempai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2006, 14h01   #4
Invité régulier
 
Inscription : janvier 2006
Messages : 40
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 40
Points : 6
Points : 6
oui c'était français...
Maintenant c'est un peu chaud au niveau du dernier truc tu vérifie qu'il a lu le message...

As-tu un peu de tps à me consacrer??

J'ai effectivement la table messages comme tu le sugère (mon auteur correspond à un user) Mais il manque un ou des destinataires à cette table??

Sinon j'ai bien la table utilisateur.
Par contre l'autre table je ne la comprend pas trop...

Peux tu faire encore plus simple
jenny50 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2006, 14h03   #5
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
Une petite optimisation. Le msg_lu n'est pas utile. Si l'utilisateur a un message, afficher le message et supprimer la ligne. Ca permet aussi une purge immédiate de la table.
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2006, 14h07   #6
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
Citation:
Envoyé par jenny50
oui c'était français...
Maintenant c'est un peu chaud au niveau du dernier truc tu vérifie qu'il a lu le message...

As-tu un peu de tps à me consacrer??

J'ai effectivement la table messages comme tu le sugère (mon auteur correspond à un user) Mais il manque un ou des destinataires à cette table??

Sinon j'ai bien la table utilisateur.
Par contre l'autre table je ne la comprend pas trop...

Peux tu faire encore plus simple
Quand tu enregistres un nouveau message, il faut dire à qui il s'adresse.
Imaginons que le message m21 s'adresse à l'utilisateur u12, u45 et u56.
Tu complètes la table userHASmessage par :
id_message id_user
m21 u12
m21 u45
m21 u56.

Quand u45 se connecte, tu vérifies s'il y a des lignes dans userHASmessage contenant u45. Si c'est le cas, popup + DELETE des lignes. Sinon : index normal.
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2006, 14h08   #7
Membre confirmé
 
Inscription : février 2003
Messages : 285
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 285
Points : 255
Points : 255
Envoyer un message via ICQ à Sion_Sempai Envoyer un message via MSN à Sion_Sempai Envoyer un message via Yahoo à Sion_Sempai
Citation:
Envoyé par vg33
Une petite optimisation. Le msg_lu n'est pas utile. Si l'utilisateur a un message, afficher le message et supprimer la ligne. Ca permet aussi une purge immédiate de la table.
oui, tout a fait !
La ou ca devient génant c'est s'il y a besoin d'historique... Mais sinon c'est encore mieux de supprimer le message lu si il ne sert plus à rien

J'ai trop l'habitude de tout archiver
Sion_Sempai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2006, 14h10   #8
Membre confirmé
 
Inscription : février 2003
Messages : 285
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 285
Points : 255
Points : 255
Envoyer un message via ICQ à Sion_Sempai Envoyer un message via MSN à Sion_Sempai Envoyer un message via Yahoo à Sion_Sempai
en gros, la 3e table correspond a la table "destinataires" dans laquelle tu lis un utilisateurs à ses messages
Sion_Sempai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2006, 14h19   #9
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
Citation:
Envoyé par Sion_Sempai
La ou ca devient génant c'est s'il y a besoin d'historique... Mais sinon c'est encore mieux de supprimer le message lu si il ne sert plus à rien

J'ai trop l'habitude de tout archiver
Habitude très saine
Mais on peut imaginer un champ dans message contenant la liste des destinataires (style :u21::u45::u56, pour s'y référer ensuite. Cela permet d'alléger la table 3, qui risque à la longue d'être démesurément longue si on ne la purge pas.
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2006, 14h39   #10
Invité régulier
 
Inscription : janvier 2006
Messages : 40
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 40
Points : 6
Points : 6
Je résume :

J'ai ma table utilisateurs (avec son id...), ma table messages (avec id, user, dest)

Dans ma table utilisateur j'avais prévu un champ IP de l'utilisateur. Est-ce qu'il peut me servir dans cette configuration??

Sinon qu'elle est la propriété du champ destinataire (puisque je peux en avoir un , deux ou encore 25000) BLOB - varchar...
jenny50 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2006, 15h01   #11
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
un champ TEXT, voire LONGTEXT devrait suffire. Mais ce champ ne servirait que pour les archives. C'est la 3e table qui servirait pour délivrer les messages.
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2006, 15h20   #12
Invité régulier
 
Inscription : janvier 2006
Messages : 40
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 40
Points : 6
Points : 6
ok et étant donnée que je n'ai pas besoin d'archiver se message le champ destinataire de la table message est inutile.

Lorsque j'ajoute un message, j'ai mon formualire avec :
- ma date OK
- mon texte OK
- l'auteur avec tte la liste des users OK (j'en choisi qu'un bien sûr)
- destinaitaire : je mets quoi???
jenny50 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2006, 15h28   #13
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
Bein... toute la liste des users aussi, non ?
Mais tes membres ne sont pas authentifiés ? Y'a des risques...
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2006, 15h50   #14
Invité régulier
 
Inscription : janvier 2006
Messages : 40
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 40
Points : 6
Points : 6
oui mais comment je dis qu'il faut que ça remplisse ma table3??

Comment ça y'a des risques?
jenny50 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2006, 16h07   #15
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
Si ton membre n'est pas authentifié, il peut envoyer un message en se faisant passer pour un autre.

Pour les destinataires, il suffit d'un select multiple de tous les users. Si ils sont trop nombreux, il faut faire une recherche sur le nom ou l'id des users.
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2006, 16h12   #16
Invité régulier
 
Inscription : janvier 2006
Messages : 40
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 40
Points : 6
Points : 6
je te remerci pour ton aide...

Tu as l'air d'être fort tu as une adresse mail où je pourrai te joindre... SI tu as du tps bien sûr.

Encoi moi un mess perso...
jenny50 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2006, 16h36   #17
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
Je te remercie
Personnellement, je préfère échanger sur les forums, pour que quelqu'un me corrige si j'écris une c....rie
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h48.


 
 
 
 
Partenaires

Hébergement Web