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

Bases de données Delphi Discussion :

Probleme de redondance


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Par défaut Probleme de redondance
    Bonjour je utilise une base de donnée Access comment je peux eviter la redondance dans le champ ID j'ai y indexé et compacté mais c'est pareil je le trouve plusieur fois sur le fichier .mdb que faire ?



    Merci

  2. #2
    Membre émérite Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 16
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Par défaut
    Tu as un champ ID d'une table avec des doublons ????

    Si tu as plusieurs "Libellé" correspondant au même IDentifiant alors tu auras une table dans laquelle on verra plusieurs fois cette identifiant (seul moyen à ma connaissance de savoir que ces "libellé" sont liés à cet IDentifiant).

    J'utilise le présent de l'indicatif du vraiment sûr et certain, mais peut-être ne t'ai-je pas bien compris .

    Veux tu rentrer dans le concret de l'imagé, STP.

    à suivre ...............

  3. #3
    Membre émérite Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 16
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Par défaut
    PS :

    Il y aurait bien un moyen aussi fantaisiste que moi, qui serait de crée la table "1024" et de faire une usine à Gaz pour générer tes requêtes d'extraction de données .

  4. #4
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 400
    Par défaut
    Salut;

    petite solution à grand effet; indexer la table sur cet identifiant, créer une nouvelle table avec la même structure, extraire les données de l'ancienne table tout en utilisant une syntaxe SQL avec la commande magique "Distinct", enregistrer le tout dans la nouvelle table puis lors d'un nouvel enregistrement gérer l'exception de l'enregistrement en double.

    Bonne chance.

  5. #5
    Membre émérite
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Par défaut
    bonjour et merci pour cette réponse
    Il y aurait bien un moyen aussi fantaisiste que moi, qui serait de crée la table "1024" et de faire une usine à Gaz pour générer tes requêtes d'extraction de données
    Créer une table pour chaque valeur sur le champ ID qui peuvent atteindre des dizaines, centaines le pire beaucoup beaucoup plus n'est pas une idée génial je veux une autre structure de stockage j'étais obligé pour gérer cela avec du bricolage des listes chainées, pages...etc.
    je essaierai ta démarche Just-Soft

  6. #6
    Membre Expert Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 553
    Par défaut
    En fait ton problème n'est pas très clair. C'est quoi l'utilisation concrète de ta table et de tes champs ?

  7. #7
    Membre émérite
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Par défaut
    gérer l'exception de l'enregistrement en double.
    En fait ton problème n'est pas très clair. C'est quoi l'utilisation concrète de ta table et de tes champs ?
    Oui je veux dédoublonner le champ ID mais sans toucher ceux qui sont sur le deuxième je veux avoir un champ indexé qui accèpte les doublons mais sans qu'il les enregistre deux fois(pour économiser un peu d'espace )

  8. #8
    Membre Expert Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 553
    Par défaut
    Bon je ne vois toujours pas l'application 'concrète'....
    Le plus simple est de tout mettre dans la même colonne et de dédoublonner !

  9. #9
    Membre émérite Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 16
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Par défaut
    Citation Envoyé par Montor Voir le message
    Oui je veux dédoublonner le champ ID mais sans toucher ceux qui sont sur le deuxième je veux avoir un champ indexé qui accèpte les doublons mais sans qu'il les enregistre deux fois(pour économiser un peu d'espace )
    Bonjour,

    Ce message est sans prétention.

    un bon disque Dur de 1 To vaut moins de 300 €.
    Dans une base de donnée un champ de type numérique prend la même place qu'il soit valorisé ou non. (n'hésitez pas à me contredire)
    Un facteur met une lettre en fonction de son adresse, sans adresse pas de courrier. (bon l'image vaut ce qu'elle vaut)

    Il faut que tu fasses des recherches sur la normalisation dénormalisation de base de données, car l'exemple que tu nous donnes semble déjà normalisé.

    Ou alors étoffe ton exemple, et tu auras des réponses plus pointues.

    à l'écoute ...

  10. #10
    Membre émérite
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Par défaut
    pour faciliter les choses
    <1024>
    <element1>
    <element2>
    <element3>
    <element4>
    </1024>
    <1046>
    <element1>
    <element2>
    <element3>
    </1046>
    As-tu des connaissances techniques approfondis sur les bases de données si oui tu me dire est ce que le rendement d'une BTree dans une situation comme la mienne d'ailleurs je ne pense pas que le BTree est disponible sur l'ADO.

  11. #11
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 493
    Par défaut
    salut

    dans l'exemple que tu donne l'identifiant est implicite
    le seul probleme c'est que c'est un fichier plat sans index
    le fait d'ajoute un meme idetifiant n'est pas en soit un probleme

    imaginon maintenant une autre structure de table

    Categorie (ID,LIBELLE,NUM)
    Exemple (1,'ASSURANCE VIE',1024)
    (2,'ASSURANCE SANTE',1046)

    Table Element (ID,LIBELLE)
    Exemple (1,'element1')
    (2,'element2')
    (3,'element3')
    (4,'element4')

    Table ASSOCIATION (ID,IDCAT,IDELEM)
    Exemple (1,1,1)
    (2,1,2)
    (3,1,3)
    (4,1,4)
    (5,2,1)
    (6,2,2)
    (7,2,3)


    @+ Phil

  12. #12
    Membre Expert Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 553
    Par défaut
    AAAAAAAAAAA c'était pour faire un arbre..............................
    Fallait le dire tout de suite !!!

    Et bien mauvaise nouvelle (ou bonne nouvelle !) ta structure de table d'origine est tout à fait adaptée à ça.
    Si tu changes suivant ton exemple 2 ou 3 tu vas galérer dès que tu veux faire évoluer ta base (insérer ou supprimer des enreg.).

    Donc : ne changes rien !

    Par contre si tu veux aller plus loin dans la notion d'arbre je te conseille cette lecture :
    http://sqlpro.developpez.com/cours/arborescence/

  13. #13
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 400
    Par défaut
    Citation Envoyé par anapurna Voir le message
    salut

    dans l'exemple que tu donne l'identifiant est implicite
    le seul probleme c'est que c'est un fichier plat sans index
    le fait d'ajoute un meme idetifiant n'est pas en soit un probleme

    imaginon maintenant une autre structure de table

    Categorie (ID,LIBELLE,NUM)
    Exemple (1,'ASSURANCE VIE',1024)
    (2,'ASSURANCE SANTE',1046)

    Table Element (ID,LIBELLE)
    Exemple (1,'element1')
    (2,'element2')
    (3,'element3')
    (4,'element4')

    Table ASSOCIATION (ID,IDCAT,IDELEM)
    Exemple (1,1,1)
    (2,1,2)
    (3,1,3)
    (4,1,4)
    (5,2,1)
    (6,2,2)
    (7,2,3)


    @+ Phil
    ça c'est une solution technique pourquoi ne pas l'exploiter ?

Discussions similaires

  1. probleme supprimer redondance dans un fichier
    Par Isabella83 dans le forum C
    Réponses: 5
    Dernier message: 06/02/2013, 11h07
  2. [MySQL] probleme de redondance d'enregistrement
    Par !NyThaX&& dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 16/01/2008, 08h27
  3. probleme hashcode redondant ds une hasmap
    Par Joe54 dans le forum Langage
    Réponses: 3
    Dernier message: 01/10/2006, 12h02
  4. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  5. [Kylix] Probleme de nombre flottant!!
    Par yopziggy dans le forum EDI
    Réponses: 5
    Dernier message: 02/05/2002, 10h13

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