[..] Gestion base de donnée/structure (sqlite)

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
SurPriseS
Niveau 6
Niveau 6
Messages : 293
Enregistré le : jeu. 06 sept. 2007 11:35
Localisation : Finistère sud
Status : Hors ligne

[..] Gestion base de donnée/structure (sqlite)

#1

Message par SurPriseS »

Bonjour !

Bon, explication :
Je bosse dans une petite boite d'informatique, et on à une douchette à code barre qui traine depuis des lustres mais elle est inutilisée...
Donc je me suis dit, on va faire un ptit programme autoit pour s'en servir :D

Image

(la partie vide sur le coté droit servira à de l'affichage de donnée, pour la partie recherche)


L'idée de base pour le moment, c'est pas de la gestion de stock (je verrais si je vais aussi "loin" plus tard), mais la création d'une BDD contenant :
- Prix d'achat/vente
- les code barre articles
- catégorie/marques
- fournisseurs (que j'ai oublié dans ma gui :$ )
-...

Voilà pour le planté de décors...

Ma question est donc, comment faire pour gérer/créer au mieux, la/les bases de données....

En gros, je sais à peut près me servir de SQLite, mais je ne sais pas du tout comment m'y prendre pour ranger/structurer "correctement" mes données dedans et permettre par la suite d'aller plus loin.

Les bdd, c'est pas mon truc, j'en ai presque jamais fait donc je suis un peu "perdu"


Bon, c'est un bon gros pavé pour presque rien dire, mais bon, j'espère être à peu près clair ^^

Merci !
Alex74
Niveau 4
Niveau 4
Messages : 73
Enregistré le : ven. 15 avr. 2011 15:24
Status : Hors ligne

Re: [..] Gestion base de donnée/structure (sqlite)

#2

Message par Alex74 »

Bonjour,

Pour le management de votre BDD, vous pouvez vous servir du soft SQLite Expert. Il existe une version gratuite pour utilisation perso si je ne dit pas de betises.
SurPriseS
Niveau 6
Niveau 6
Messages : 293
Enregistré le : jeu. 06 sept. 2007 11:35
Localisation : Finistère sud
Status : Hors ligne

Re: [..] Gestion base de donnée/structure (sqlite)

#3

Message par SurPriseS »

Mon problème, enfaite, c'est pas d'écrire la base en elle même, c'est d'ordonné/ranger les données et les tables...

Je ne sais pas comment structuré ma base quoi :( je connais très mal SQL et c'est possibilité :\
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [..] Gestion base de donnée/structure (sqlite)

#4

Message par Yogui »

En faite la question est comment créer un MCD et la un peu de lecture s'impose.

http://fdigallo.online.fr/cours/merise.pdf

Le but est de trier les données pour éviter d'avoir des enregistrements redondant.

Dans votre imprim'écran vous avez catégorie qui devra certainement avoir une table idem pour marque sauf si vous avez un article par marque.

Vous indiquez que vous voulez une table avec : Prix d'achat/vente mais le prix de vente est calculé (avec une TVA et une Marge qui peuvent varier donc seul le prix d'achat sera enregistrer en base dans la table produit.

Si vous douchez un de vos code barre sur google vous risquez de le retrouver les codes barre sont souvent des identifiants produit fiable, donc pas de table code barre....

La table fournisseur dépend beaucoup de vos fournisseurs un fournisseur peux t il vendre une ou plusieurs marque d'une ou plusieurs cathégorie.

je verrai :

une table Produit($codebarre,prixHA,designationproduit,#IDTVA,#IDfournisseur,IDMarque)
Une table TVA ($IDTVA,tauxTVA)
Une table fournisseur(#IDfournisseur,designationfournisseur,(rue adresse nom ...), #Idmarque,#idcaterorie)
....

Il existe des logiciel qui aide à créer des MCD comme http://www.quest.com/toad-data-modeler/

Pour finir Attention faire plus tard la gestion du stock c'est prendre un risque de devoir faire évoluer la base le truc pour bien construire un BDD c'est de se poser les bonnes questions.

faites votre MCD (cf doc merise) je vous le corrigerai mais vous seul pouvez vous poser les bonnes questions

Yog
overflow
Niveau 5
Niveau 5
Messages : 138
Enregistré le : sam. 05 déc. 2009 23:49
Status : Hors ligne

Re: [..] Gestion base de donnée/structure (sqlite)

#5

Message par overflow »

J ai fait un truc similaire avec Sqlite pour géré des medicament

tient je te joint le source
Dedans tu a toute ce qu il te faut connaitre pour debuté
Creation de base/table/champ
Ajout/surprime et édition
Recherche et affichage
► Afficher le texte
SurPriseS
Niveau 6
Niveau 6
Messages : 293
Enregistré le : jeu. 06 sept. 2007 11:35
Localisation : Finistère sud
Status : Hors ligne

Re: [..] Gestion base de donnée/structure (sqlite)

#6

Message par SurPriseS »

Yogui, c'est exactement le genre d'info que je cherchais ;) merci beaucoup ! C'est vrai aussi que si je part sur de la gestion de stock, sa va modifier complétement la structure de la base, à voir, je vais essayer de faire ça proprement dans un premier temps sans me faire une base énorme pour testé, je verrais après si je tente la gestion de stock et tout ;)

overflow, j'en demandais pas tant, mais en tout cas, c'est quasiment ce que je veux faire, donc ça va mettre très utile pour gagner du temps ;) Je vais étudier de près votre code ;)

Merci beaucoup tout les 2 ;)
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Gestion base de donnée/structure (sqlite)

#7

Message par jchd »

Je vais devoir ajouter mon grain de sel ce soir ou demain.

A+, pas le temps là.

Me revoilou. Quelques remarques à la suite de ce qui a été déjà écrit.

1) Commencer par l'interface, c'est mettre la charrue avant les boeufs.

2) A ce qu'a dit Yogui j'ajouterai que l'expérience pousse à dissocier plus encore les choses dans le cas général, quite à élaguer si ces points n'ont aucune chance de refléter la réalité.
2.a) Un produit a parfois plusieurs fournisseurs proposant souvent des conditions distinctes.
2.b) Le prix d'achat est lié à une entrée en stock, une livraison, une commande, un fournisseur.
2.c) Le prix d'achat seul ne reflète que rarement le prix de revient d'un article : il faut la plupart du temps tenir compte de ce qu'on appelle les frais d'approche (transport, frais de douane et transitaires, [re-]conditionnement, manutention, ...). Le total de ces deux composantes fait le véritable prix de l'article en stock.
2.d) Un article "trop longtemps" (une notion floue !) en stock se déprécie.
2.e) Le code barre d'un produit n'est pas forcément enregistré en nomenclature publique : il peut s'agir d'un code bidon (même EAN8/13), d'un code interne, d'un code de fabrication, etc.
2.f) Un même produit (offert à la vente par exemple) peut avoir plusieurs codes barres distincts (même de l'EAN).



3) Le code proposé par overflow, tout plein de bonne volonté qu'il ait été en le postant, n'est franchement pas un modèle et pour beaucoup de raisons.

3.a) Sauf circonstances très particulières, on n'ouvre et ne ferme la base qu'une fois dans le programme, jamais à chaque opération.

3.b) Ne sachant pas ce que va devenir l'appli, il est prudent de travailler avec le handle de connexion retourné par _SQLite_Open et éviter le paramètre -1 qui devient piégeant si on doit travailler avec une autre base dans le même programme (base mémoire temporaire ou autre).

3.c) SELECT * from ... est à proscrire : si on doit un jour réorganiser l'ordre des colonnes d'une ou plusieurs tables, toutes les applis utilisant cette base devront être modifiées en conséquence.

3.d) Ne pas indiquer de type dans la création d'une table n'est pas une bonne chose, SQLite ou pas.

3.e) La table unique proposée est une hérésie qui va à l'encontre de tous les principes sous-jacents à SQL (cf post de Yogui) et même au bon sens.

3.f) Il existe des fonctions de haut-niveau qui permettent d'effectuer des requêtes de façon fiable et qui renvoient un résultat correct ou une erreur circonstanciée. Il n'y a que des inconvénients à utiliser _SQLite_Query, *_FetchData et autres sans savoir exactement ce qu'on fait et pourquoi on fait ça avec ces fonctions-là.
_SQLite_QuerySingleRow, _SQLite_GetTable et surtout _SQLite_GetTable2d sont 100 fois plus solides.

Il va vraiment falloir que je trouve le moyen de refaire toute la doc SQLite et en particulier les exemples, car la plupart sont désastreux.

3.g) ...


Attendons déjà d'en savoir plus sur le modèle de données dont a vraiment besoin l'appli. Ce qui veut dire : "quelles entités, avec quelle sémantique ?" et ensuite "quelles relations les lient ?", puis "quelles contraintes les encadrent ?".

Alors seulement faire un machin qui tient le pavé à l'aide d'Expert, puis le faire tourner à la main (c'est facile) et ensuite seulement coder de l'AutoIt quand tout est stable et cohérent (vues comprises).
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Répondre