Logiciel de gestion de cave à vin

Eléphanteau du PHP | 16 Messages

14 déc. 2005, 11:36

Bonjour à tous,

Je souhaite créer un petit programme de gestion d’une cave à vin en PHP. (J’installerai Apache comme serveur virtuel et je ferai tout par là)

Alors voilà les données dont j’ai besoin :

- La catégorie du vin (Blanc, rosé, rouge, etc…)
- La région de provenance du vin (Bordeaux, Bourgogne, etc…)
- Le millésime du vin (1998, 1994, etc…)
- Pour les nouveaux et récents achats :
- Date de l’achat
- Nombre acheté
- Prix de l’achat (par bouteille)
- Pour la gestion de la cave :
- Emplacement dans la cave (C4, E6, etc…)
- Nombre de bouteilles consommées
- Valeur du stock (Prix achat*(nbre bouteille acheté - nbre consommées))
- Pour les vins :
- Année de consommation minimum (1998, etc…)
- Année de consommation maximum (1999, etc…)
- Année de consommation moyenne
- La cote du vin (10/20, 13/20, etc…)
- Le nom du producteur du vin

Premier brainstorming :

Après une premier analyse, j’ai crée les tables comme cela :

Code : Tout sélectionner

-- -------------------------------------------------------- -- -- Structure de la table `achat` -- CREATE TABLE `achat` ( `id_achat` int(11) NOT NULL auto_increment, `date_achat` date NOT NULL default '0000-00-00', `nbre_achat` int(10) NOT NULL default '0', `prix_achat` int(10) NOT NULL default '0', PRIMARY KEY (`id_achat`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; -- -- Contenu de la table `achat` -- -- -------------------------------------------------------- -- -- Structure de la table `categorie` -- CREATE TABLE `categorie` ( `id_cat` int(11) NOT NULL auto_increment, `nom_cat` text NOT NULL, PRIMARY KEY (`id_cat`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; -- -- Contenu de la table `categorie` -- -- -------------------------------------------------------- -- -- Structure de la table `cave` -- CREATE TABLE `cave` ( `id_cave` int(11) NOT NULL auto_increment, `empl_cave` text NOT NULL, `nbre_conso` int(10) NOT NULL default '0', `valeur_stock` int(10) NOT NULL default '0', PRIMARY KEY (`id_cave`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; -- -- Contenu de la table `cave` -- -- -------------------------------------------------------- -- -- Structure de la table `millesime` -- CREATE TABLE `millesime` ( `id_millesime` int(11) NOT NULL auto_increment, `nom_millesime` int(4) NOT NULL default '0', PRIMARY KEY (`id_millesime`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; -- -- Contenu de la table `millesime` -- -- -------------------------------------------------------- -- -- Structure de la table `region` -- CREATE TABLE `region` ( `id_region` int(11) NOT NULL auto_increment, `nom_region` text NOT NULL, PRIMARY KEY (`id_region`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; -- -- Contenu de la table `region` -- -- -------------------------------------------------------- -- -- Structure de la table `vin` -- CREATE TABLE `vin` ( `id_vin` int(11) NOT NULL auto_increment, `fk_id_achat` int(11) NOT NULL default '0', `fk_id_categorie` int(11) NOT NULL default '0', `fk_id_cave` int(11) NOT NULL default '0', `fk_id_millesime` int(11) NOT NULL default '0', `fk_id_region` int(11) NOT NULL default '0', `con_min_vin` int(11) NOT NULL default '0', `con_max_vin` int(11) NOT NULL default '0', `cote_vin` int(11) NOT NULL default '0', `prod_vin` text NOT NULL, PRIMARY KEY (`id_vin`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; -- -- Contenu de la table `vin`

Déjà, à ce niveau, je voudrais savoir si vous êtes en accord avec moi dans ces choix.

Il faut savoir pour cela que je souhaite offrir les possibilités suivantes dans l’application :


Insertion / Création / Modification :

- Région
- Millesime
- Categorie
- Achat
- Cave
- Vin

Listes :

- Par Region
- Par millesime
- Par categorie
- Par achat
- Par cave
•Par emplacement dans la cave !
- Par vin
•Consommation max
•Consommation min
•Consommation moyenne


Voilà tout ce que j’ai à faire…. J’en suis au point zéro du développement de l’application et j’aimerais connaître vos avis pour l’élaboration de ce programme.

Alors n’hésitez à me faire part de vos commentaires…. Et de vos recommandations… et si une âme souhaite créer ce projet (car il est vraiment fan de développement) qu’il me le dise, on pourra s’arranger…. !! :-)

Merci d’avance à tous.

Mammouth du PHP | 19672 Messages

14 déc. 2005, 11:48

Un détail que j'ai noté : la champ nom_cat en type TEXT pour mettre "rouge", "blanc" ou "rosé" n'est pas approprié: choisis plutôt un type ENUM avec ces mêmes valeurs.
J'ai également un doute sur le type de champ TEXT pour le champ empl_cave de la table "cave" : un type VARCHAR(64) me semblerait suffisant, mais pour être sûr, il faudrait savoir de quelle donnée il s'agit au juste.
Pour le champ nom_millesime dela table "millesime", quelque chose me dit qu'il s'agit de l'année : un type SMALLINT serait très largement suffisant (-32768 à +32767) : le vieillissement des meilleurs crus au-delà du million d'année me semble des plus douteux... ;)

Pour le reste, je ne note pas d'erreur particulière, mais c'est un regard rapide. Quant à le développer, quelles sont tes connaissances en matière de PHP ? Cette application est à priori relativement basique.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 16 Messages

14 déc. 2005, 12:14

Merci, je vais prendre note de cela, merci...

Pour le développement, j'ai déjà fait des trucs du genre, mais ce le nombre de fonctions qui me fait peur je dois dire...

Et aussi quelques problèmes de gestion quand j'insère par exemple un achat... Il faudrait en fait lors de l'insertion de nouveaux vins directement remplir cette table en même temps ? De même pour l'emplacement, la valeur, etc... ??

et pour les autres données (autres tables), je fais des listes déroulantes pour choisir la ligne adaptée ??

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

14 déc. 2005, 12:15

Modération : je déplace ton message dans Modélisation où il aura sûrement plus d'attentions.
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Mammouth du PHP | 19672 Messages

14 déc. 2005, 12:18

...le nombre de fonctions qui me fait peur je dois dire...
Il n'y a pas de raison : il faut y aller avec ordre et méthode et définir une structure dans les fichiers : les pages, les fonctions, les styles, les images, etc... tout ça dans des répertoires distincts avec une convention de nommage claire. Le reste, ce n'est que de la technique.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 46 Messages

14 déc. 2005, 15:48

Je viens de terminer un site (intranet) de gestion faq qui me faisait aussi très peur au début.
Comme le dit Cyrano : il faut de la méthode.
Prends les formulaires les + simples (ajout par exemple), puis part sur ceux en modification, puis en suppression, en faisant un petit plan (avant de commencer) des contraintes (du style ne pas supprimer une cave où il reste des vins).

Eléphanteau du PHP | 16 Messages

14 déc. 2005, 16:03

Bon, qu'il en soit ainsi...

Je vais me lancer.... Je reviendrai certainement par ici pour des aides... Merci de vos encouragements... :wink:

Invité
Invité n'ayant pas de compte PHPfrance

24 déc. 2005, 21:30

Bah oui tient nous au jus, je comptais faire un projet de cette sorte car le me met au 'pinard', j'arrête la bière ;)

Et puis bon heureusement c'est pas les idée qui manque, mais plutôt l'occasion de les mettre en oeuvres, alors si tu si besoin de testeurs (je bosse dans l'info, aussi bien sous nux que win) mail moi

--
cege@localhost (remplacer localhost par jurastick.dyndns.org)

cege72
Invité n'ayant pas de compte PHPfrance

24 déc. 2005, 21:42

J'oublais, une catégorie de vin, ça s'appelle un cépage, je suis novice mais je connais au moins ça ;)

un bon logiciel sous linux pour la gestion de cave : xcave.free.fr

Tu peux t'en inspirer, voir te rapprocher du développeur en lui disant que tu souhaites faire une gestion de cave en php/mysql

Qui sait il en as p-être déjà eu l'idée... donc vous pourriez faire du collaboratif (cela lui permettrait en tous les cas d'avoir une version autre que linux ou bien que son logiciel s'appuie soit sur une BDD MySQL soit son .dat)

Car c'est relou de booter sous linux rien que pour aller boire du pinard, autant aller voir direct à la cave :)

Mais son boulout est super !