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 :

Lier un commentaire à un message [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Par défaut Lier un commentaire à un message
    Bonjour.

    Je cherche à créer une association des commentaire aux messages. C'est un conseil que je demande.

    Est-il préférable d'associer un champ de la table commentaires à message ou inversément?

    Ma table des message :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE TABLE IF NOT EXISTS `messages` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `title` varchar(32) NOT NULL,
      `descb` varchar(255) NOT NULL,
      `links` varchar(120) NOT NULL,
      `image` varchar(120) NOT NULL,
      `media` varchar(120) NOT NULL,
      `modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
    Dans une autre table, il pourrait y avoir un champ qui associerait à "message".

    Genre à comment_id dans la 2e table et je mettrait le ID de message.

    J'ai besoin de vos idées sur cela.

    Je parle aussi du principe de créer un système pour faire des catégories.

  2. #2
    Membre émérite
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Par défaut
    Etant donné que tu peut avoir plusieurs commentaires pour un message, il est mieux de mettre ta clé étrangère dans la table commentaires

  3. #3
    Membre éclairé Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Par défaut
    Alors, je ferais comme ceci :

    Le ID de la table messages irait à mon champ coment_id de
    ma table commentaires que voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TABLE IF NOT EXISTS `commentaires` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `nname` varchar(32) NOT NULL,
      `title` varchar(32) NOT NULL,
      `messg` varchar(32) NOT NULL,
      `coment_id` varchar(32) NOT NULL,
      `modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
    Au champ coment_id`, j'ai besoin de créer un index? ou autre?

    Et je créerait ma requête avec une jointure quelconque.

    Merci pour ce conseil.
    Bonne année

  4. #4
    Membre émérite
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Par défaut
    Citation Envoyé par dancom5 Voir le message
    Alors, je ferais comme ceci :

    Le ID de la table messages irait à mon champ coment_id de
    ma table commentaires que voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TABLE IF NOT EXISTS `commentaires` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `nname` varchar(32) NOT NULL,
      `title` varchar(32) NOT NULL,
      `messg` varchar(32) NOT NULL,
      `coment_id` varchar(32) NOT NULL,
      `modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
    Au champ coment_id`, j'ai besoin de créer un index? ou autre?

    Et je créerait ma requête avec une jointure quelconque.

    Merci pour ce conseil.
    Bonne année
    Pour le champs en question je te conseil de l'appeler messageId_fk (Id du message, fk = foreign key = clé étrangère), c'est pas obligatoire mais c'est mieux pour la lisibilité notamment dans tes requêtes, pour le reste non t'a rien d'autre à faire à part ne pas te planter en faisant tes jointures

  5. #5
    Membre éclairé Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Par défaut
    Je pense que je dois ajouter une référence dans la table des messages afin de pouvoir effacer les commentaires si j'éfface un message.

    En détruisant un message qui porterais le ID 100

    qui lui a comme commentaire les ID1, ID2, ID3 et ID6

    Il faudrait que j'indique à message, les ID des commentaire?

    Parce que si je détruit un message, je ne veux pas que les
    commentaires associé reste.

  6. #6
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Théoriquement il faudrait 3 tables pour représenter cette relation 1,n (une à plusieurs) qu'il y a entre la table "messages" et "commentaires".

    Les 3 tables :
    - "messages" : id_message comme clé primaire et auto_increment.
    - "commentaires" : id_commentaires comme clé primaire et auto_increment.
    - "commentaires_messages" : une clé double zone comme clé primaire, c'est à dire -> PRIMARY KEY (id_message, id_commentaire). Cette table n'aura alors que 2 champs, les couples d'IDs de messages et commentaires.

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

Discussions similaires

  1. [PHP 5.0] Lier l'article aux commentaires
    Par lythande dans le forum Langage
    Réponses: 9
    Dernier message: 13/04/2015, 16h15
  2. [Modèle Relationnel] Plusieurs commentaires pour un seul message
    Par -Fly- dans le forum Schéma
    Réponses: 2
    Dernier message: 16/03/2012, 15h43
  3. [XL-2003] Lier des évennements aux différents choix d'un Message Box
    Par Mas_Carpone dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/10/2009, 14h38
  4. A lire impérativement avant de poster un message
    Par ok.Idriss dans le forum Demandes
    Réponses: 0
    Dernier message: 01/05/2002, 18h57

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