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

MySQL Discussion :

question general sur innodb


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut question general sur innodb
    Bonjour à tous, je souhaite plus de renseignement sur la gestion des relations avec innoDB.
    En général, je travail avec MyIsam sur de petit projet avec des CMS léger.
    Mais une conception conséquente est en cours de développement et je souhaite alors travailler avec InnoDb et la gestion des relations.
    J'ai lu ce tutoriel : http://sony-noel.developpez.com/tuto...page=innodb#LX
    Mais certaine zone d'ombre sont toujours dans ma petite tête .
    Est ce vrai que l'ordre de création des tables est importante avec ce mode ?
    Est ce plus difficile à appréhender ?
    Cela réduit il les jointures manuelle ?
    Bref j'aimerai savoir de petite chose avant de ma lancer surtout au niveau de la conception des tables et des requêtes.
    Je travail souvent avec de grosse jointure sous myIsam mais un aspect plus "automatisé" avec les clés étrangère m'intrigue fortement.

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 063
    Par défaut
    Bonjour,

    Est ce vrai que l'ordre de création des tables est importante avec ce mode ?
    Forcément, puisqu'on peut définir des clefs étrangères. Il faut donc que la table référencée soit créée avant la table qui la référence.

    Est ce plus difficile à appréhender ?
    Non, pas nécessairement. Il faut juste préciser le moteur à chaque création de table, penser à indexer correctement les colonnes qui seront référencées, et créer les clefs étrangères.
    Ne t'inquiète pas, en cas de problème, nous sommes là pour t'aider .

    Cela réduit il les jointures manuelle ?
    Non, ça ne réduit pas les jointures d'une requête. En revanche, ça assure un contrôle de l'intégrité des données au niveau des requêtes d'insertion, de mise à jour et de suppression.
    Ainsi, il n'est pas possible d'insérer une donnée référencée avec une valeur qui n'existe pas dans la colonne référencée. De même sur la mise à jour...
    Enfin, pour la suppression, il est possible de limiter la suppression de lignes d'une table référencée si il existe des lignes qui la référencent dans une autre table (ou alors de tout supprimer en cascade, sans avoir à faire 2 opérations de suppression).

    Voici un lien vers un tutoriel SQL qui explique un peu plus en détail ce qu'est l'intégrité référentielle : http://sqlpro.developpez.com/cours/s...partie2#L7.1.7

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut
    Donc en gros cela n'altère pas ma méthode de travail.
    Je construit mes requêtes de la même manière avec cependant un contrôle supplémentaire d'intégrité référenciel.
    Prenons un exemple de requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT c.*, sa.*, co.*, p.idpays, p.pays FROM client c LEFT JOIN secteur_activite sa ON ( c.idsecteur = sa.idsecteur ) LEFT JOIN communes co ON ( c.idcommune = co.idcommune ) LEFT JOIN pays p ON ( co.idpays = p.idpays )
    Je suppose que le fais d'utiliser l'intégrité référenciel va aider à contrôler l'insertion.
    Bien sur il faut alors repenser les tables pour faire des tables de référence

  4. #4
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 063
    Par défaut
    Non, le fait de disposer d'un contrôle, côté SGBD, de l'intégrité référentiel ne devrait pas changer le modèle de tes tables, si celui-ci est correct.
    Simplement, tu n'as plus à vérifier toi-même si une valeur référencée existe déjà ou pas.

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut
    Je suis entrain de créer une base de donnée sur ce modèle et je doit donc faire des relations.
    Les tables :
    • t_profil
    • t_score
    • t_amis
    • t_redact
    • r_profil

    t_profil
    • idprofil
    • nom
    • prenom
    • siteweb

    t_score
    • idscore
    • score

    t_amis
    • idamis
    • amis

    t_redact
    • idredactions
    • texte1
    • texte2

    r_profil
    • idprofil
    • idscore
    • idamis
    • idredactions

    D'autres tables viendrons s'ajouter, mais je pense faire également une table spécifique pour l'activation par email, donc en gros
    t_activation
    • idprofil
    • code

    Je pense la lié provisoirement avec le profil avec la clé idprofil afin de pouvoir supprimé un enregistrement si le code est activé.(libéré de la mémoire)

    Le schéma vous semble il correct ?
    J'ai fais autant de table séparé vu que chacune d'entre elle dois être indépendante mais toutes lié à la table profil

  6. #6
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 063
    Par défaut
    Ça devient plus un problème de conception/modélisation qu'un problème technique MySQL, à présent .
    Il vaut mieux poser une nouvelle question dans le forum Schéma.
    A moins qu'il ne reste des problèmes avec InnoDB ?

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

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

Discussions similaires

  1. Question générale sur Delphi?
    Par Mickey.jet dans le forum Delphi
    Réponses: 6
    Dernier message: 27/06/2006, 14h45
  2. Question generale sur Swing ?
    Par Sylmandel dans le forum AWT/Swing
    Réponses: 14
    Dernier message: 05/05/2006, 11h37
  3. Question générale sur les scripts linux
    Par jejerome dans le forum Linux
    Réponses: 4
    Dernier message: 09/04/2006, 08h25
  4. question general sur triggers (liaison avec VB)
    Par DaxTaz dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 06/07/2004, 15h57
  5. question general sur malloc
    Par vince3320 dans le forum C
    Réponses: 8
    Dernier message: 23/06/2004, 10h39

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