Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 01-02-2017 12:42:51

Rurirm
Membre
Inscription : 26-01-2017

Base de Données

Bonjour ,
je ne sais pas si il y a des gens qui s'y connaissent un peu en BDD içi mais c'est vraiment basique dont pas de souci ^^'

En gros je fais un logiciel de gestion de clients et de maintenances effectuées pour ces derniers.
J'aurais une table client qui contient toutes les données personnelles de mes clients.
Dans une table maintenance j'ai toutes les informations afin de compléter des fiches de maintenances, avec l'aide ou non des informations clients (il faudra surement une jointure)
Dans ma table facture , j'ai juste à reprendre la clé primaire du client. Je me demandais si je devais faire une clé étrangère pour le faire, il me semble que oui.

En réalité , je suis un peu perdu sur comment je dois faire pour que dans maintenance je puisse creer un client si jamais il existe pas ou quoi .. x)
Je suis surement pas clair du tout ! Demandez moi des questions pour clarifier si besoin
Screen : http://imgur.com/a/iiRKi


EDIT : Ma BDD est sous MySql.

Dernière modification par Rurirm (01-02-2017 14:13:26)

Hors ligne

#2 01-02-2017 13:28:36

smolski
administrateur quasi...modo
Lieu : AIN
Distrib. : 8 (jessie) 64 bits + backports
Noyau : 3.16.0-4-amd64 - 3.16.39-1
(G)UI : gnome 1:3.14+3
Inscription : 21-10-2008

Re : Base de Données

Ta bdd c'est mysql ?

"Théo et Adama te rappellent pourquoi Zyed et Bouna couraient…"
"L'utopie ne signifie pas l'irréalisable, mais l'irréalisée." - T Monod (source :  La zone de Siné)
"Je peux rire de tout mais pas avec n'importe qui." - P Desproges
"saque eud dun" (patois chtimi : fonce dedans)

Hors ligne

#3 01-02-2017 14:02:35

mazert
Membre
Distrib. : Jessie
(G)UI : Kde
Inscription : 04-09-2011
Site Web

Re : Base de Données

Bonjour,

Pour commencer, il y a plein de champs à supprimer dans tes tables (nom, prénom... dans maintenance, ça n'a rien à faire là).

La logique voudrais : Clé étrangère dans Maintenance pointant vers Client ; Clé étrangère dans maintenance qui pointe vers facture.
Tes clients tu les créés dans client, et après à la selection de la clé étrangère dans maintenance, tu choisira le client correspondant.

Dernière modification par mazert (01-02-2017 14:02:55)


https://elgeekador.tk : Blog Kde, Python, adminsys, et bon plans

Hors ligne

#4 01-02-2017 14:11:31

Rurirm
Membre
Inscription : 26-01-2017

Re : Base de Données

Oui , c'est du MySQL

mazert a écrit :

Bonjour,

Pour commencer, il y a plein de champs à supprimer dans tes tables (nom, prénom... dans maintenance, ça n'a rien à faire là).

La logique voudrais : Clé étrangère dans Maintenance pointant vers Client ; Clé étrangère dans maintenance qui pointe vers facture.
Tes clients tu les créés dans client, et après à la sélection de la clé étrangère dans maintenance, tu choisira le client correspondant.




Je vais éclaircir ce point. Disons que j'ai un site web où l'on peut faire une demande de maintenance et dont les champs sont envoyés dans clients.
Et que Maintenance est la table utilisée dans le logiciel de Gestion , j'aimerais pouvoir creer des maintenances sans forcement avoir un client qui a fait une demande par le site web. Par exemple : Si un client vient à l'entreprise et demande une maintenance j'aimerais ne pas passer trop longtemps dans les pages à devoir d'abord créer un client puis ensuite récup ces données et dire que l'on créer une maintenance.

"Clé étrangère dans Maintenance pointant vers Client" Oui , j'avais fais ca au départ , j'avais une idcli dans maintenance qui était en clé étrangère sur client(idcli) mais j'ai rapidement eu des erreurs car il fallait obligatoirement que idcli soit initialement déja dans client.

Pour facture , je pense qu'il est plus logique d'aller vers maintenance également. Mais dans ma facture il me faut aussi mes informations de clients "nom , prenom , adresse " .. smile

Hors ligne

#5 01-02-2017 16:22:02

mazert
Membre
Distrib. : Jessie
(G)UI : Kde
Inscription : 04-09-2011
Site Web

Re : Base de Données

Il ne faut pas confondre la logique d'interface de ton logiciel, et la structuration des données.
En fonction de tes besoins tu va développer un formulaire spécifique et ton gestionnaire de modèles écrira les bonnes informations au bon endroit.

Ensuite à toi de faire les bonnes requêtes SQL : connaitre le client d'une facture d'id 5 donnerait en gros :

SELECT Client.* FROM Client, Maintenance WHERE maintenance.facture_id = 5 AND Client.id = maintenance.client_id


https://elgeekador.tk : Blog Kde, Python, adminsys, et bon plans

Hors ligne

#6 01-02-2017 16:55:17

Rurirm
Membre
Inscription : 26-01-2017

Re : Base de Données

mazert a écrit :

Il ne faut pas confondre la logique d'interface de ton logiciel, et la structuration des données.
En fonction de tes besoins tu va développer un formulaire spécifique et ton gestionnaire de modèles écrira les bonnes informations au bon endroit.

Ensuite à toi de faire les bonnes requêtes SQL : connaitre le client d'une facture d'id 5 donnerait en gros :

SELECT Client.* FROM Client, Maintenance WHERE maintenance.facture_id = 5 AND Client.id = maintenance.client_id



Disons que je vois ce que je dois faire au niveau code en php et en Sql mais j'ai un peu de mal pour la conception de la BDD ^^'
Je comprends que je vais faire à coup de jointures et tout mais je vois pas en fait quel champs mettre dans quelle table ^^'

En fait il me faut de l'aide pour comprendre comment concevoir ma BDD afin de pouvoir avoir une demande de maintenance qui se stocke (peu importe l'endroit) suite au formulaire sur le web , mais il faut que je puisse faire des créations de fiches maintenances sans passer par le site web pour avoir des infos clients.

Ensuite , les factures il faudra juste que je récupère infos des maintenances smile Donc elle c'est pas un souci ^^

Dernière modification par Rurirm (01-02-2017 17:00:12)

Hors ligne

Pied de page des forums