Probleme base de données as400 vers mysql
Résolu/Ferméptisephy Messages postés 74 Date d'inscription jeudi 4 décembre 2008 Statut Membre Dernière intervention 8 novembre 2022 - 25 août 2022 à 09:11
- Probleme base de données as400 vers mysql
- Formules excel de base - Guide
- Gigaset ne reconnait plus sa base - Forum telephonie fixe
- Tnt base de données vide - Forum TNT / Satellite / Réception
- Désolé l'utilisation de la base de données a expiré epic games - Forum Jeux vidéo
- Gigaset a170h problème base ✓ - Forum telephonie fixe
12 réponses
Modifié le 1 août 2022 à 15:09
Bonjour,
Pour recréer un MCD il serait plus simple de savoir ce que l'on gère. Et aussi avoir des noms de tables significatifs, pas table0, table1 ... et expliquer ce qu'elle contient. Puis si une table comporte 10 lignes ou 500 000 , c'est aussi un indice dans la compréhension de l'organisation de la BDD. Et les noms de champs qui commencent tous par colonnexxx cela ne simplifie pas la lecture.
Généralement on utilise un ID comme clé primaire quand on n'a pas de donnée significative. Cet ID n'a rien d'obligatoire. Les performances en recherche sont liés aux index associés aux colonnes, c'est plutôt donc vers la création d'index qu'il faudrait regarder. Après j'ignore quand on déclare une clé primaire sur Mysql si un index associé est créé automatiquement.
1 août 2022 à 15:34
J'ai tenté de refaire le plus significativement possible le nom des tables :
SOldeEntreprise ColonneCOD varchar(7) utf8_general_ci Oui NULL ColonneNUMSIRET varchar(14) utf8_general_ci Oui NULL ColonneNUMENTREPRISE varchar(9) utf8_general_ci Oui NULL ColonneMONTANT varchar(9) utf8_general_ci Oui NULL ColonneDATESOLDE varchar(9) utf8_general_ci Oui NULL ColonneADHFER varchar(9) utf8_general_ci Oui NULL Entreprise ColonneCOD varchar(2) utf8_general_ci Oui NULL ColonneNOMFICHIER varchar(50) utf8_general_ci Oui NULL ColonneENTCHR varchar(6) utf8_general_ci Oui NULL ColonneNUMSIR varchar(14) utf8_general_ci Oui NULL ColonneNumEntreprise varchar(12) utf8_general_ci Oui NULL ColonneRAISOC varchar(35) utf8_general_ci Oui NULL ColonneADRESS1 varchar(35) utf8_general_ci Oui NULL ColonneADRESS2 varchar(35) utf8_general_ci Oui NULL TypeEmission ColonneCOD varchar(2) utf8_general_ci Oui NULL ColonneNOMFICHIER varchar(50) utf8_general_ci Oui NULL ColonneENTCHR varchar(6) utf8_general_ci Oui NULL ColonneNUMSIR varchar(14) utf8_general_ci Oui NULL ColonneDETCHR varchar(6) utf8_general_ci Oui NULL ColonneEmiNet ColonneBaseEmission ColonneMontantEMission ColonneLibelleEmission TypeEncaissement ColonneCOD varchar(7) utf8_general_ci Oui NULL ColonneNOMFICHIER varchar(39) utf8_general_ci Oui NULL ColonneENTCHR varchar(9) utf8_general_ci Oui NULL ColonneNUMSIR varchar(14) utf8_general_ci Oui NULL ColonneNumEntreprise varchar(9) utf8_general_ci Oui NULL ColonneRAISOC varchar(27) utf8_general_ci Oui NULL ColonneRAISO2 varchar(32) utf8_general_ci Oui NULL ColonneADRESS varchar(31) utf8_general_ci Oui NULL ColonneADRES2 varchar(24) utf8_general_ci Oui NULL colonneDebitEncaissement ColonneTotalEncaissement table4 ColonneCOD varchar(7) utf8_general_ci Oui NULL ColonneNOMFICHIER varchar(39) utf8_general_ci Oui NULL ColonneENTCHR varchar(9) utf8_general_ci Oui NULL ColonneNUMSIR varchar(14) utf8_general_ci Oui NULL COlonneMontantEncaissement ColonneDateEncaissement
Voila tout le problème :
je sais qu'il gère les emissions et encaissements des entreprises.
Mon programme prend un fichier en entrée, il va lire les sirens de ce fichier et interroge la base de données et en gros, s'il trouve un siren, il va retournée les résultats dans mon fichires excel de sortie, sinon il ne retourne rien, exemple:
il va lire le numero 123456 ,45698, 65879 etcc, ils vont etre enregistré dans un tableau puis mon programme va faire un select ( qui se trouve dans une boucle for et mo nreader va retournée les résulats :
123456 - entreprise Maçon1 ,etc.... (là on aura des données dans les cellules du fichier excel)
45698 -> pas de résultats donc les colonnes seront vide
65879 -> Entreprise de béton , etc......
Concernant une vue significative, là j'ai essayé de mettre des noms à peu près français , mais le nom des colonnes ne veut rien dire pour moi avec leur codifications, les seuls champs que j'ai reconnu à peu pret son mathadh ( matricule adhérent ) ou NUMSIR ( numéro siret) , donc j'ai retranscrit au mieux en français ci après.
Le soucis en ce qui concerne la création d'index, j'ai déja essayé de le faire sur la colonne ColonneCOD, ça n'a pas marché , même sur la colonne "numsiret" mais mysql ne veut pas :(
J'ai fais le test de mettre en clé primaire le champs numsiret, pour la table0 ça marche car dans chaque ligne, nous n'avons pas de doublon, mais pour l'autre table, voila le message que j'ai :
ALTER TABLE `table1` ADD PRIMARY KEY(`TESNUMSIR`);
MySQL a répondu :
#1062 - Duplicata du champ '66609567444446' pour la clef 'PRIMARY'
1 août 2022 à 16:00
Et NUMENTREPRISE comme n° unique et PK ?
que contient ENTCHR ?
1 août 2022 à 17:14
Tant que tu n'as pas compris la signification de ces données, tu ne pourras pas faire une requête correcte qui retourne des données utiles.
Si tu ne connais pas comment fonctionnent les emissions et encaissements des entreprises, fais toi aider par un expert, ou forme toi.
1 août 2022 à 16:18
Bonjour,
idem pour numero entreprise, dans certaines table, il y a plusieurs fois le même numero donc ça ne marchera pas .
J'ai regardé dans les tables, il n'y a que dans les tables typeEncaissement et typeEmission qu'il y a cette colonne, elle corespond à un numerique ( 1,2,3,4... ) mais on ne peut pas l'exploiter, car dans la table TypeEmission, il y a des doublons, exemple :
1
1
1
2
2
3
4
5
etc.....
j'ai essayé de trouver un lien entre les deux voir si par exemple en fonction du chiffre on a le meme siret mais non, tout est différent.
Modifié le 1 août 2022 à 16:57
NUMENTREPRISE sur table1/entreprise est-il unique, c'est cela qui est important
il peut être présent plusieurs fois dans d'autres table si la même entreprise réalise plusieurs émissions, encaissements
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question1 août 2022 à 16:51
bonjour,
Lisant ceci: "Mon programme prend un fichier en entrée, il va lire les sirens de ce fichier et interroge la base de données et en gros, s'il trouve un siren, il va retournée les résultats dans mon fichires excel de sortie, sinon il ne retourne rien, exemple:", et ceci "Lorsque je faisais la jointure dans mon programme ça ne marchait pas ou était très long à s'executer".
Je m'interroge sur l'idée de faire une jointure sur toutes les tables pour "retourner" un résultat. Il faudrait d'abord comprendre quel est le résultat attendu, et, ensuite, réfléchir à comment l'obtenir.
D'où vient l'idée qu'un fichier Excel peut servir de "sortie" à l'ensemble d'une base de données?
Qu'essaies-tu réellement de réaliser? L'as-tu suffisamment compris.
2 août 2022 à 14:28
Bonjour,
voici le traitement initial, via l'as400 est fondé sur le même principe.
D'après ce que l'on m'a expliqué, en entrée il avait un fichire texte, à partir de ce fichier, il faisait un traitement ( interrogé la base de données ) et en sortie il avait un fichier excel. Le principe de ce traitement est juste une interrogation de base de données.
Pour exemple:
D'une mois à l'autre, le fichier texte peut être plus ou moins volumineux, à partir de ce fichier :
- il interrogé la base de donnée,
- généré un fichier excel
cela veut dire que, pour un siren donnée ( lu dans le fichier en entrée ) , la base nous retourne les résultats, avec toutes les colonnes correspondante, puis ensuite je génère un fichier excel.
Pour résumer,
à partir du fichire texte, je dois générer un fichier excel qui me retourne tous les résultats selon un siren données, ma requête étant juste un select avec 3 jointures et en clause xhere mon numero de siren (voir mon programme c# dans le post précédent).
L'idée du fichier excel en gros, on me l'a imposé, car ils exactement la meme chose, c'est qu'a partir du fichier en entrée, un fichier excel se génère avec toutes les colonnes de résultat.
Je suis un peu obligé de faire des jointures car chaque données obligatoires se trouvent dans les dirrérentes tables.
J'ai appelé un collegue pour avoir plus d'information :
je me posais la question à savoir comment les données seront mis à jour , mais pour le moment on ne sait pas, en gros, je construits juste un programme pour aller de B vers C, avec un fichier en entrée et un excel en sortie, mais pour ce qui est de la mise à jour des données (A vers B) pour le moment j'en sais pas plus.
Comme cité précedemment, pour le moment, dans ma base mysql se sont que des données issus d'un export brut, (sans les liens), qu'on a réalisé pour moi, afin que je créé mon programme.
2 août 2022 à 16:05
Il faudrait que comprennes ce que signifie chaque colonne du fichier Excel, et comment obtenir cette info de la base de données.
3 août 2022 à 11:03
Bonjour,
petit edit : concernant la colonne, j'ai regardé plus précisément et après test dans la base prep, je peux bien me servir de cette colonne pour clé primaire.
Toutefois, dans une de mes tables, je n'ai pas cette données et malheureusement pour moi, j'ai besoin de cette table, pour récupérer la valeur de deux colonnes ( :( ).
Je vais me renseigné auprès d'un collegue pour qu'il m'explique un peu les intitulés des colonnes en effet, merci.
Modifié le 3 août 2022 à 11:56
tu n'es toujours pas assez précis : concernant la colonne ? une de mes tables, je n'ai pas cette données ?
Une clé primaire c'est seulement dans la table de définition de cette entité. Dans les autres tables c'est une clé étrangère. Et donc sur cette donnée si elle sert à effectuer des jointures, pour les temps de réponse, il est interessant de créer des index.
3 août 2022 à 12:14
Le souci, pour le moment, c'est d'extraire des données correctes.
Les performances pourront être améliorées ensuite.
8 août 2022 à 08:52
bonjour,
désolé pour le temps de réponse, j'etais accaparé par autre chose dernièrement, sinon j'ai également réfléchi sur le sujet et je me suis dis la chose suivante:
s'il s'agit d'un export brut, je me suis dis que dans chaque fichier excel, il doit y avoir au moins une clé primaire et potentiellement une clé étrangère également, qui comme tu le dis sert à faire la jointure.
'J'ai fais des tests rapide vendredi dernier et je me suis posé une question, se pourrait il que la clé primaire soit un couple de deux champs ?
mercii
8 août 2022 à 10:50
Rien ne s'oppose à utiliser des combinaisons de champs pour des clés.
10 août 2022 à 09:49
Bonjour,
j'ai retravaillé des fichier, afin de vous motnré mes données, on voit qu'il y a un lien , mais je n'arrive pas à définir les clés primaire, voici les liens :
https://www.cjoint.com/c/LHkhSPiYEW0
https://www.cjoint.com/c/LHkhTGjb7A0
https://www.cjoint.com/c/LHkhTTYSUQ0
https://www.cjoint.com/c/LHkhT6EJjN0
https://www.cjoint.com/c/LHkhUjJGbX0
J'ai remarqué qu'il y a une certaines correspondance avec la colonne ENTCHR et j'ai tenté de définir des couples mais rien y fait.
Merci
10 août 2022 à 10:28
Tu ne connais toujours pas le modèle de gestion des données et à quoi elle servent, ou si peu. Tu avances au hasard. Tu dois prendre tes données et aller voir un utilisateur de l'application d'origine pour qu'il t'explique leurs significations et leurs liens. Lui il va t'expliquer ce qu'il gère et en regardant une donnée il doit savoir dire, voilà c'est ce champ là sur l'écran de l'application, et cela sert à ... Exemple, il faut savoir donner un nom en clair en ENTCHR.
10 août 2022 à 14:21
lol, on est d'accord.
Justement c'est ce que je disais, on est venu me voir en m'expliquant que l'as400 va se terminer, il faut un programme , avec lequel on obtient le même résulta : voila un fichire en entré et il faut le meme fichier excel en sortie , bon courage !
voila en gros ce qu'on m'a dit lol.
la personne qui s'occupait de cela est en congés et rentre quand je m'en vais en congés, puis la personne m'ayant donné ce projet à faire, idem, on se croisera que quelque jour, je vais essayé d'en savoir plus.
Autrement dit, Déjà j'ai le un pseudo four que j'ai "construit", il manque plus que certains ingrédient en bonne quantité , pour réaliser la patisserie et metrte le tout à chauffé enfin lol , en tout cas merci pour tes conseils :)
10 août 2022 à 14:25
Le point de départ, c'est de comprendre le contenu du fichier de sortie.
25 août 2022 à 09:11
Bien le bonjour,
alors j'ai mon collègue qui est revenu de congés ( à deux jours de mon départ en congés, je termine demain soir ) et il m'a fourni les documents avec les clefs primaires et étrangère.
Vous imaginez à quel point j'etais content de ne plus avancé à l'aveugle car depuis le temps , je patogais, bref et comme je le soupçonnais, dans certaines tables, parfois il y a 5 champs qui compose une clés primaire.
Là je vais pouvoir avancé ^