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 :

Fusionner trois tables identiques en une?


Sujet :

MySQL

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 16
    Par défaut Fusionner trois tables identiques en une?
    Bonjour,

    Je suis en train de créer ma bdd pour une application Joomla.
    Mes trois tables vont avoir un lien logiciel avec une quatrième table, donc il n'y a pas de clé étrangère dans le lot.
    Mes trois tables ressemblent à ceci:

    Nom : apercu_table.png
Affichages : 169
Taille : 7,7 Ko

    Est-ce qu'il m'est possible de fusionner mes tables en une seule, car elles sont toutes identiques? La seule chose qui change est le contenu et l'appel de la table de manière logiciel.

    Quels sont vos avis?

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 16
    Par défaut
    Apparemment il est plus intéressant dans mon cas de garder les trois tables distinctes puisque cela m'évitera de filtrer avec mes requêtes d'autant plus que je ne veux pas tout afficher en même temps.

  3. #3
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 448
    Par défaut
    Bonjour,
    Si la structure des trois tables est identique, pourquoi ne pas garder une seule table et utiliser une vue pour "simuler" les trois tables du point de vue de l'application ?

    Tatayo.

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 16
    Par défaut
    À vrai dire, je ne sais pas trop. C'est pour cela que je voulais avoir vos avis aiguisé sur ma problématique. En soi, ma deuxième réponse rejoins ma problématique dans le cas où je ne veux pas afficher tout mes résultats d'un coup mais je ne sais pas si c'est très judicieux et rigoureux de faire ainsi.
    L'idée de la Vue est pas mal et je n'y avais pas pensé. Si je comprends bien, il me suffit de créer une vue pour remonter les infos d'une certaine catégorie? Quels sont les avantages à garer 3 tables ou a les fusionner et créer des vues?

  5. #5
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 625
    Billets dans le blog
    10
    Par défaut
    Pourquoi avoir créé initialement trois tables identiques ?

    Si les trois tables sont dans la même database locale, c'est contraignant en cas d'évolution et pour la gestion des droits et ne présente pas d'intérêt.
    Si le souci est la distribution d'un volume important, il est préférable de partitionner une table unique.

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 16
    Par défaut
    Initialement, j'ai créé trois tables pour m'adapter à Joomla. En effet, je souhaite transformer mes trois tables identiques en catégorie dans Joomla. C'est pour cela que je précise qu'il y aura uniquement un lien logiciel. La gestion des droits ACL est également géré par Joomla.
    Et je ne suis pas sous la contrainte de volume, donc l'idée du partitionnement est écarté pour ma part.

    Au vu des remarques, je pense que je vais fusionner les tables et faire le test avec les deux modèles.

  7. #7
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 625
    Billets dans le blog
    10
    Par défaut
    En cas de fusion, il faudra probablement régénérer les identifiants PK car il y a très probablement un grand nombre de doublons.
    Si ces 3 tables ne sont liées à aucune autre, ça ne pose aucun problème, si au contraire il y a d'autres tables qui font référence via des contraintes à ces valeurs de PK, c'est une autre histoire, il faut propager la renumérotation.

  8. #8
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 900
    Par défaut
    Salut à tous.

    Citation Envoyé par getPrenom()
    Est-ce qu'il m'est possible de fusionner mes tables en une seule, car elles sont toutes identiques?
    C'est possible et c'est même recommandé !

    Citation Envoyé par getPrenom()
    La seule chose qui change est le contenu et l'appel de la table de manière logiciel.
    Il suffit de reprendre l'excellence idée de Tatayo, à savoir créer une view pour chacune de vos ancienne table.
    Ainsi la modification sera minime dans votre application.

    Citation Envoyé par getPrenom()
    À vrai dire, je ne sais pas trop.
    Vous ne savez pas trop car vous n'avez pas une bonne vue d'ensemble de votre projet.

    Si vos trois tables ont la même structure, mais pour des rasions que vous n'avez pas explicitement dit, on peut conserver ce type de structure au travers d'une partition.
    Afin de faire la distinction entre l'origine de vos données, donc de vos trois tables, il suffit d'ajouter une colonne servant de critère.

    Citation Envoyé par getPrenom()
    Quels sont les avantages à garer 3 tables ...
    Aucune, sinon à vous compliquer la vie. Au lieu de trois imaginez qu vous en ayez 1000 !
    Pour une quelconque raison, si vous êtes amené à modifier vos tables, vous devrez répéter les mêmes manipulations dans 1000 tables.

    Citation Envoyé par getPrenom()
    ... ou a les fusionner et créer des vues?
    C'est la bonne solution !

    En reprenant les idées de chacun cela donne :
    a) fusionner les trois tables en une seule.
    b) afin de ne pas tout casser dans votre application, créer une view pour chacun de ces trois tables.
    c) afin de distinguer chaque table, il suffit d'ajouter dans la nouvelle table une colonne genre "nom de la table". Par exemple "T1", "T2" et "T3".
    d) la nouvelle clef sera la concaténation de l'ancienne avec ce nom de table nouvellement créé. Cela permet de rendre unique votre nouvelle identifiant.
    e) il n'est pas nécessaire de refaire la numérotation de vos identifiant. Vous pouvez les conserver en l'état.
    f) l'impact sur votre application sera minime puisque vous intervenez qu'au niveau de la base de données.
    g) un autre point que vous n'avez pas soulevé, vous pouvez appliquer une sécurité sur chacune view afin que seule les utilisateurs autorisés auront accès.

    Citation Envoyé par getPrenom()
    Mes trois tables vont avoir un lien logiciel avec une quatrième table, donc il n'y a pas de clé étrangère dans le lot.
    Je n'ai pas compris ce que vous entendez par un lien logiciel vers une quatrième table.

    @+

Discussions similaires

  1. Réponses: 7
    Dernier message: 19/01/2012, 08h16
  2. Copier deux tables identiques dans une troisième
    Par accessgeek dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 29/04/2011, 17h43
  3. Réponses: 0
    Dernier message: 11/12/2009, 19h10
  4. Fusionner deux tables identiques
    Par sami_c dans le forum Langage SQL
    Réponses: 7
    Dernier message: 27/08/2008, 10h21
  5. Réponses: 5
    Dernier message: 15/10/2007, 15h49

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