IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[Conception] Ptit soucis de bdd


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 40
    Points : 24
    Points
    24
    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??

  2. #2
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    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...
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 285
    Points : 300
    Points
    300
    Par défaut
    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 ?

  4. #4
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 40
    Points : 24
    Points
    24
    Par défaut
    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

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    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.

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    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.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 285
    Points : 300
    Points
    300
    Par défaut
    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

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 285
    Points : 300
    Points
    300
    Par défaut
    en gros, la 3e table correspond a la table "destinataires" dans laquelle tu lis un utilisateurs à ses messages

  9. #9
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    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.

  10. #10
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 40
    Points : 24
    Points
    24
    Par défaut
    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...

  11. #11
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    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.

  12. #12
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 40
    Points : 24
    Points
    24
    Par défaut
    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???

  13. #13
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Bein... toute la liste des users aussi, non ?
    Mais tes membres ne sont pas authentifiés ? Y'a des risques...

  14. #14
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 40
    Points : 24
    Points
    24
    Par défaut
    oui mais comment je dis qu'il faut que ça remplisse ma table3??

    Comment ça y'a des risques?

  15. #15
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    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.

  16. #16
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 40
    Points : 24
    Points
    24
    Par défaut
    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...

  17. #17
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Je te remercie
    Personnellement, je préfère échanger sur les forums, pour que quelqu'un me corrige si j'écris une c....rie

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [mfc]un ptit souci de pointeur
    Par isidore dans le forum MFC
    Réponses: 3
    Dernier message: 14/05/2006, 14h11
  2. [Conception] pièce jointe dans BDD
    Par davasm dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/05/2006, 08h59
  3. [Perl] Un ptit souci avec le zip->addFile
    Par irenee dans le forum Langage
    Réponses: 1
    Dernier message: 28/12/2005, 11h44
  4. ptit soucis de blending
    Par Deus Ex Makina dans le forum OpenGL
    Réponses: 5
    Dernier message: 31/05/2005, 16h26
  5. [langage] ptit souci de syntaxe
    Par marouanitos dans le forum Langage
    Réponses: 2
    Dernier message: 26/09/2003, 10h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo