Insertion clée composée
Fermé
ridasys21
Messages postés
11
Date d'inscription
vendredi 30 avril 2010
Statut
Membre
Dernière intervention
17 juillet 2012
-
Modifié par irongege le 1/06/2010 à 10:38
ridasys21 Messages postés 11 Date d'inscription vendredi 30 avril 2010 Statut Membre Dernière intervention 17 juillet 2012 - 2 juin 2010 à 19:51
ridasys21 Messages postés 11 Date d'inscription vendredi 30 avril 2010 Statut Membre Dernière intervention 17 juillet 2012 - 2 juin 2010 à 19:51
A voir également:
- Insertion clée composée
- Insertion liste déroulante excel - Guide
- Insertion sommaire word - Guide
- Insertion signature word - Guide
- Insertion filigrane word - Guide
- Touche insertion clavier - Guide
8 réponses
Salut,
Idéalement, IdArt est le code article. Il est imprimé dans le catalogue, présent sur le site web, sur les tiroirs du rayonnage. C'est un élément manipulé par l'opérateur et c'est ce dernier qui le fourni au programme.
Au contraire, l'identifiant de la commande est souvent un numéro chrono (comme avec un carnet à souche). Donc ton programme calcule le n° de commande (qui servira dans idCmd) et le mémorise tant que l'opérateur n'en a pas fini avec la commande. Un fois que ta commande est enregistrée dans le système, tu pourras ultérieurement la retrouver par son n° client, sa date, un code article commandé mais surtout par son n° de commande : le jour où j'enverrai un email pour me plaindre de ce que tu ne m'as pas livré ma commande, ton réflexe va être de me demander le n° de ma commande... et si je te le fournis pas, tu pourras pas me renseigner rapidement...
Idéalement, IdArt est le code article. Il est imprimé dans le catalogue, présent sur le site web, sur les tiroirs du rayonnage. C'est un élément manipulé par l'opérateur et c'est ce dernier qui le fourni au programme.
Au contraire, l'identifiant de la commande est souvent un numéro chrono (comme avec un carnet à souche). Donc ton programme calcule le n° de commande (qui servira dans idCmd) et le mémorise tant que l'opérateur n'en a pas fini avec la commande. Un fois que ta commande est enregistrée dans le système, tu pourras ultérieurement la retrouver par son n° client, sa date, un code article commandé mais surtout par son n° de commande : le jour où j'enverrai un email pour me plaindre de ce que tu ne m'as pas livré ma commande, ton réflexe va être de me demander le n° de ma commande... et si je te le fournis pas, tu pourras pas me renseigner rapidement...
ridasys21
Messages postés
11
Date d'inscription
vendredi 30 avril 2010
Statut
Membre
Dernière intervention
17 juillet 2012
2
1 juin 2010 à 10:36
1 juin 2010 à 10:36
Bonjour,
Merci pour ces explications.
Je dévellope une application web qui fait le suivi du sycle d'approvisionnement .
Le idArt est de type varchar expemple : "12345.23456". Même le idCmd il est de type varchar.
A chaque fois je dois saisir une commande avec des articles, j'arrive plus à récuperer les valeurs des clé (idArt et idCmd) apres insertion dans les 2 table Commande et Article afin de les utiliser dans la table ComporterCmddArt.
Merci pour ces explications.
Je dévellope une application web qui fait le suivi du sycle d'approvisionnement .
Le idArt est de type varchar expemple : "12345.23456". Même le idCmd il est de type varchar.
A chaque fois je dois saisir une commande avec des articles, j'arrive plus à récuperer les valeurs des clé (idArt et idCmd) apres insertion dans les 2 table Commande et Article afin de les utiliser dans la table ComporterCmddArt.
Salut,
pourtant, l'idArt est fourni par un opérateur via un formulaire => il est mémorisable dans une variable.
et pour la commande, il y a bien un moment où tu crées l'entête de commandes avant de lui rajouter des items, cet idCmd devrait donc être facilement récupérable (en spécifiant son créateur par exemple) !
pourtant, l'idArt est fourni par un opérateur via un formulaire => il est mémorisable dans une variable.
et pour la commande, il y a bien un moment où tu crées l'entête de commandes avant de lui rajouter des items, cet idCmd devrait donc être facilement récupérable (en spécifiant son créateur par exemple) !
ridasys21
Messages postés
11
Date d'inscription
vendredi 30 avril 2010
Statut
Membre
Dernière intervention
17 juillet 2012
2
2 juin 2010 à 11:51
2 juin 2010 à 11:51
Merci bien.
J'ai également un soucis lorsqu'il s'agit d'une clée étrangère.
Exemple: Article(idArt,idtype,libelle) Type(idtype,type)
-> idArt:on le saisit manuellement avec son libéllé
-> idtype: s'auto-incrémente, le type le saisit
idtype est une clée étrangère dans la table Article.
Pour remplir ces deux tables je procède la manière suivante:
Je remplis tout d'abord le type et je récupère idtype à l'aide: mysql_insert_ID(),
puis j'insère facilement dans la table Article.(idArt et idtype:connu).
-Est ce que cette méthode est optimisée ?
-Est ce qu'elle valable pour les une application web multi-utilisateur ?
Je vous serais reconnaissant car vous m'avez éclairsi pas mal de choses.
J'ai également un soucis lorsqu'il s'agit d'une clée étrangère.
Exemple: Article(idArt,idtype,libelle) Type(idtype,type)
-> idArt:on le saisit manuellement avec son libéllé
-> idtype: s'auto-incrémente, le type le saisit
idtype est une clée étrangère dans la table Article.
Pour remplir ces deux tables je procède la manière suivante:
Je remplis tout d'abord le type et je récupère idtype à l'aide: mysql_insert_ID(),
puis j'insère facilement dans la table Article.(idArt et idtype:connu).
-Est ce que cette méthode est optimisée ?
-Est ce qu'elle valable pour les une application web multi-utilisateur ?
Je vous serais reconnaissant car vous m'avez éclairsi pas mal de choses.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut
Vu qu'il n'existe pas 250 types d'articles différents, le nombre de lignes dans type est forcément restreint. De plus, il est un axe d'analyse de tes stocks, donc, chaque type devrait être connu par chaque utilisateur du logiciel. Et c'est un peu le même principe pour les familles de produits (la nomenclature la plus pointue est gérée par la douane et compte moins de 350 items).
Donc, ces axes ne sont pas à créer dynamiquement (à la volée) et doivent être disponibles avant la création de la ligne. Et comme ils sont disponibles, ils n'ont pas à être retrouvés avec mysql_insert_ID()
Si vraiment, tu veux faire économiser la mémorisation de la codification type article, famille produit, code tva etc aux opérateurs, le logiciel doit proposer des listes affichant les libellés
Ex: lors de la création de l'article, l'opérateur sélectionne le type "Consommable à date de péremption" et la famille "Phytosanitaire" dans les listes proposées (par le requetage sur la table type_article et sur la table famille_produit), la requête de création sera
Les puristes objecteront qu'à la fin on a un produit cartésien... mais comme les tables entrant en jeu sont limitées (et les moteurs d'aujourd'hui performants), l'impact de cette horreur sera négligeable
Vu qu'il n'existe pas 250 types d'articles différents, le nombre de lignes dans type est forcément restreint. De plus, il est un axe d'analyse de tes stocks, donc, chaque type devrait être connu par chaque utilisateur du logiciel. Et c'est un peu le même principe pour les familles de produits (la nomenclature la plus pointue est gérée par la douane et compte moins de 350 items).
Donc, ces axes ne sont pas à créer dynamiquement (à la volée) et doivent être disponibles avant la création de la ligne. Et comme ils sont disponibles, ils n'ont pas à être retrouvés avec mysql_insert_ID()
Si vraiment, tu veux faire économiser la mémorisation de la codification type article, famille produit, code tva etc aux opérateurs, le logiciel doit proposer des listes affichant les libellés
Ex: lors de la création de l'article, l'opérateur sélectionne le type "Consommable à date de péremption" et la famille "Phytosanitaire" dans les listes proposées (par le requetage sur la table type_article et sur la table famille_produit), la requête de création sera
insert into Article(idArt, idtype, libelle, famille) select $idArticleSaisi, t.idtype, $txtDesignation, f.code_famille from type_article t, famille_produit f where t.libelle='Consommable à date de péremption' and f.libelle='Phytosanitaire'
Les puristes objecteront qu'à la fin on a un produit cartésien... mais comme les tables entrant en jeu sont limitées (et les moteurs d'aujourd'hui performants), l'impact de cette horreur sera négligeable
ridasys21
Messages postés
11
Date d'inscription
vendredi 30 avril 2010
Statut
Membre
Dernière intervention
17 juillet 2012
2
2 juin 2010 à 16:28
2 juin 2010 à 16:28
$idArtcleSaisi="A";
$txtDesignation="T";
Ce genre de requete (insert + select ), est ce qu'il concerne sql ?
J'ai assayé votre rêquete elle génère 2 erreurs:
"Unknown column 'Tet' in 'field list'"
"Unknown column 'T' in 'field list'"
->Le but de cette requete est de selectionner idtype et idfamille puis insérer le tout dans la table article. n'est ce pas ?
Merci.
$txtDesignation="T";
Ce genre de requete (insert + select ), est ce qu'il concerne sql ?
J'ai assayé votre rêquete elle génère 2 erreurs:
"Unknown column 'Tet' in 'field list'"
"Unknown column 'T' in 'field list'"
->Le but de cette requete est de selectionner idtype et idfamille puis insérer le tout dans la table article. n'est ce pas ?
Merci.
Salut,
Je ne connais pas ta base ni ton application. Les manipulations que j'évoquais ainsi que la requête conséquente sont bien évidemment un exemple (c'était le but de Ex: en début du paragraphe)
Cette requête exemple a, comme tu l'as compris, pour but de récupérer des valeurs avec un SELECT et de s'en servir pour faire un INSERT.
Pour en simplifier l'écriture, j'ai utilisé des alias dans la clause FROM ce qui me permet de simplifier l'écriture en préfixant les colonnes avec l'alias et non le nom de la table. Sans les alias, la requête aurait dû être
Et bien évidemment, une telle requête ne peut fonctionner qu'à la condition de l'adapter à la base où on l'exécute, chose qui m'est impossible puisque je ne connais pas ta base. Il aurait fallu a minima qu'une table famille_produit(code_famille, libelle) existe, qu'une table type_article(idtype, libelle) existe et que article contienne idArt, libelle, idtype, famille pour que cette requête exemple ne renvoie pas une erreur...
Je ne connais pas ta base ni ton application. Les manipulations que j'évoquais ainsi que la requête conséquente sont bien évidemment un exemple (c'était le but de Ex: en début du paragraphe)
Cette requête exemple a, comme tu l'as compris, pour but de récupérer des valeurs avec un SELECT et de s'en servir pour faire un INSERT.
Pour en simplifier l'écriture, j'ai utilisé des alias dans la clause FROM ce qui me permet de simplifier l'écriture en préfixant les colonnes avec l'alias et non le nom de la table. Sans les alias, la requête aurait dû être
insert into Article(idArt, idtype, libelle, famille) select $idArticleSaisi, type_article.idtype, $txtDesignation, famille_produit.code_famille from type_article, famille_produit where type_article.libelle='Consommable à date de péremption' and famille_produit.libelle='Phytosanitaire'
Et bien évidemment, une telle requête ne peut fonctionner qu'à la condition de l'adapter à la base où on l'exécute, chose qui m'est impossible puisque je ne connais pas ta base. Il aurait fallu a minima qu'une table famille_produit(code_famille, libelle) existe, qu'une table type_article(idtype, libelle) existe et que article contienne idArt, libelle, idtype, famille pour que cette requête exemple ne renvoie pas une erreur...
ridasys21
Messages postés
11
Date d'inscription
vendredi 30 avril 2010
Statut
Membre
Dernière intervention
17 juillet 2012
2
2 juin 2010 à 19:51
2 juin 2010 à 19:51
ça marche très très bien. Je ne sais pas comment vous remércier.