Accueil > Forum > > > > code client
code client
mardi 9 août 2011 à 15:14:24 |
code client

buryohe
|
Bonjour,
J'ai un problème dans ma programmation.En effet, je suis débutant mais j'aime la programmation.
je voulais demander un conseil et une aide. Au fait, j'ai créé une table client dans mon MCD mais le problème que j'ai rencontré est que même si j'ai cette table, les clients sont de deux types: il peut être une personne moral ou une personne physique. Donc le formulaire change selon la personne. Comment veux-je faire?
Voilà ma table client
create table client
(
code_client varchar(10) primary key,
Type_client enum('Personne physique','Personne morale') not null,
Nom_client varchar(50) unique not null,
Prenom_client varchar(50) unique not null,
Denomination_social varchar(50) not null,
Nom_dirigeant varchar(50) not null,
Nom_contact varchar(50) not null,
Nationalite char(20) not null,
Civilite char(20) not null,
Date_de_naissance date not null,
Adresse varchar(50) not null,
Ville varchar(50) not null,
Telephone1 numeric(20) null,
Email_client varchar(30) unique null,
Code_postal varchar(30) null,
Telephone2 numeric(20) null,
aUnDossier ENUM('oui','non') not null default 'non'
)ENGINE=InnoDB;
|
|
mardi 9 août 2011 à 16:00:37 |
Re : code client

cod57
|
bonjour
lors de la récupération des données à afficher
tu fais la distinction
ex
$form1 ='<form>form1<input type="submit"></form>';
$form2 ='<form>form2<input type="submit"></form>';
mysql_connect($host,$user,$pass);
mysql_select($db);
$code = mysql_real_escape_string(int($_GET['code']));
$sql="select * from $table where code_client='".$code."' ";
$q = mysql_query($sql);
$t = mysql_fetch_row($q);
if ( $t[Type_client] === 'Personne physique' ){
echo 'Personne physique' ;
echo $form1;
}else{
echo 'Personne morale' ;
echo $form2;
}
 Bonne programmation !
|
|
mardi 9 août 2011 à 16:04:33 |
Re : code client

cod57
|
Code PHP :
<?php
$form1 ='<form>form1<input type="submit"></form>';
$form2 ='<form>form2<input type="submit"></form>';
//à definir $host,$user,$pass,$db,$table
mysql_connect($host,$user,$pass);
mysql_select($db);
$code = mysql_real_escape_string((int)$_GET['code']);
$sql="select * from ".$table." where code_client='".$code."' ";
$q = mysql_query($sql);
$t = mysql_fetch_row($q);
if ( $t['Type_client'] === 'Personne physique' ){
echo 'Personne physique' ;
echo $form1;
}else{
echo 'Personne morale' ;
echo $form2;
}
?>
 Bonne programmation !
|
|
mardi 9 août 2011 à 19:54:37 |
Re : code client

kohntark
|
Salut,
J'ai un problème dans ma programmation
A vue de nez je dirai plutôt que tu as un problème de conception, pas de programmation. :)
Je ne pense pas qu'il soit possible de t'aider ici car il faudrait en connaitre bien plus sur ton projet.
Vu de très loin donc, il faut peut être que tu te demandes si plusieurs tables ne sont pas nécessaires, étant donné les disparités entre personne morale et personne physique : je ne suis pas sur qu'une personne morale ait une date de naissance, ni une civilité, etc ... et qu'une personne physique ait un "Nom_dirigeant", ...
Pour moi ce sont 2 statuts différents (et donc des caractéristiques différentes) qui imposent au minimum 2 tables.
Après tout dépend d'un tas de critères que toi seul connais.
Puis au passage, vite fait :
Email_client varchar(30)
Ville varchar(50)
...
=> ça fait peut être un peu lég' (le nombre de caractères)
Code_postal varchar(30)
Telephone2 numeric(20)
=> c'est peut être un peu trop :)
Cordialement,
Kohntark -
|
|
mercredi 10 août 2011 à 09:42:04 |
Re : code client

buryohe
|
Au fait mon projet se base sur la gestion d'un cabinet d'avocat. Dans un cabinet, on a des clients qui peuvent être des personnes morales(société,association,....)ou des personnes physiques(jean, françois,...). Donc, moi je pense même si vous dites que c'est un problème de conception, il y a aussi de la programmation car au niveau du modèle conceptuel de données on aura une seule table qui contient toutes les informations concernant un client(qu'il soit moral ou physique).
La question alors est la suivante: est-ce que je veux créer deux tables clients comme vous le dites?
Merci.
|
|
jeudi 11 août 2011 à 22:32:44 |
Re : code client

JulSoft
|
Pour parler conception de base de données: Tu as plusieurs façons de faire, toutes se justifient en fonction de tes besoins. Je résume les tendances.
Variante A) comme tu as fait, une seule table. C'est tout à fait valable, pour autant que tu aies les mêmes champs pour tes 2 types de clients (donc pas par exemple de personne de contact pour une entreprise en plus du nom et de l'adresse de l'entreprise).
Variante B) 2 tables distinctes. A n'utiliser uniquement si TOUT est distinct entre tes clients, ce dont je doute... C'est valable si tu n'as pas de code commun derrière (deux traitements complettement séparés de tes clients donc).
Variante C) 3 tables. On se base ici sur le principe de l'héritage. En gros: une table clients qui contient les données communes (n° de client, ...), une table "personnes morales" dont la clé primaire est la clé de ta table clienet, qui permet de préciser les infos des personnes morales uniquement, une 3ème table "personnes physiques" analogue à celle des personnes morales.
Pour plus de flexibilité, tu peux te baser sur la 3ème variante, qui me semble plus adaptée à ton problème. Il faut juste un poil plus réfléchir aux requêtes à faire après...
Voila pour ce qui est de l'architecture de ta BDD. En espérant que ça puisse t'aider.
|
|
mardi 16 août 2011 à 10:18:00 |
Re : code client

buryohe
|
J'opte pour la variente B. je vous dire mon resultat.
Merci.
|
|
mardi 23 août 2011 à 11:52:54 |
Re : code client

buryohe
|
Bonjour,
ne pensez pas que je vous derange mais j'ai besoin de votre aide.
je optais pour la création de deux tables une pour la personne physique et l'autre pour la personne morale.Or, les attributs qui montrent l'adresse de ces deux personnes sont les mêmes. Alors, j'ai dû créer une 3ème table adresse.
Ce que je veux c'est de m'aider comment enregistrer dans un seul formulaire un client(soit une personne morale, soit une personne physique).
Voilà Mes tables et mon code:
create table if not exists adresse(
id_adresse int(11) NOT NULL PRIMARY KEY,
Ville varchar(50) not null,
Telephone1 numeric(20) ,
Email_client varchar(30) unique null,
Code_postal varchar(30),
Telephone2 numeric(20),
Id_prsmorale varchar(5),
Id_prsphysique varchar(5)
)ENGINE=InnoDB;
create table if not exists Personne_morale
(
Id_prsmorale varchar(5) NOT NULL primary key,
Denomination_social varchar(50) not null,
Nom_dirigeant varchar(50) not null,
Nom_contact varchar(50) not null,
id_adresse int(11) NOT NULL,
num_dossier int (10)
)ENGINE=InnoDB;
create table if not exists Personne_physique
(
Id_prsphysique varchar(5) primary key,
Nom varchar(50) not null,
Prenom varchar(50) not null,
Date_de_naissance date not null,
Nationalite char(20) not null,
Civilite char(20) not null,
id_adresse int(11) NOT NULL,
num_dossier int (10)
)ENGINE=InnoDB;
Code PHP :
<! DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Frameset//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd”>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>Cabinet RUBEYA & CO </title>
<link rel="stylesheet" href="Css/new.css" type="text/css" media="screen"!
</head>
<body class="page-agenda">
<div id="conteneur">
<div id="cadreglobal">
<div class="bandeau-information">
<div id="cadre">
<div id="entete-bloc">
<div id="info-utilisateur">
Bonjour
<a class="bouton" href="deconnection.php?action=logout">Déconnexion</a><br>
Vous utilisez le cabinet <span id="cabinet-courant">RUBEYA&CO</span><br>
</div>
<img src="cabinet.gif" width="120" height="121">
</div>
<div id="wrapper">
<div class="art-content-layout">
<div class="art-content-layout-row">
<div class="art-layout-cell art-sidebar1">
<div class="art-block">
<div class="art-block-body">
<div id="menu-bloc">
<div class="menu">
<ul class="premier">
<li><a href="new.php" id="lien-menu-dossiers">Dossiers</a></li>
<li><a href="/rest/agenda" id="lien-menu-agenda">Agenda</a></li>
<li><a href="client.html" id="lien-menu-clients">Clients</a></li>
<li><a href="contact.html" id="lien-menu-contacts">Contacts</a></li>
<li><a href="/rest/modeles-document" id="lien-menu-modeles">Modèles de document</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="art-layout-cell art-content">
<div id="contenu-bloc">
<div class="boutons">
<span>Ajouter : <a href="ajoutclient1.php" class="bouton">Personne morale</a>|<a href="ajoutclient2.php" class="bouton">Personne physique</a></span>
<h1>Client</h1>
</div>
<div class="detail-personne">
<div class="boutons">
<a style="display: none;" class="bouton lien-bouton ui-helper-hidden" id="boutonModification" href="#">Modifier</a>
<h2>Personne morale</h2>
</div>
<form id="formulairePersonne" method="post" action="ajoutclient1.php">
<fieldset>
<table>
<tbody><tr>
<td><label for="denominationSociale">Dénomination sociale : </label></td>
<td><input class="invalide" name="denomination_Sociale" id="denominationSociale" required="required" value="" type="text"></td>
</tr>
<tr>
<td><label for="dirigeant">Nom du dirigeant :</label></td>
<td><input name="dirigeant" required="required" value="" type="text"></td>
</tr>
<tr>
<td><label for="contact">Nom du contact :</label></td>
<td><input name="contact" value="" type="text"></td>
</tr>
<tr>
<td><label for="ville">Ville :</label></td>
<td><input name="Ville" value="" type="text"></td>
</tr>
<tr>
<td><label for="adresse">Adresse :</label></td>
<td><input name="adresse" value="" type="text"></td>
</tr>
<tr>
<td><label for="email">Email :</label></td>
<td><input name="Email_client" value="" type="text"></td>
</tr>
<tr>
<td><label for="numeroTelephone">Numéro téléphone :</label></td>
<td><input name="Telephone1" value="" type="text"></td>
</tr>
<tr>
<td><label for="codePostal">Code postal :</label></td>
<td><input name="Code_Postal" value="" type="text"></td>
</tr>
<tr>
<td><label for="numeroFax">Numéro télécopie :</label></td>
<td><input name="numeroFax" value="" type="text"></td>
</tr>
<tr>
<td colspan="2" class="boutons">
<p>
<button id="boutonValider" type="submit" name="BT_Envoyer">Valider</button>
ou <a href="/rest/clients">Annuler</a>
</p>
</td>
</tr>
</tbody>
</table>
</fieldset>
</form>
</div>
</div>
</div>
</div>
</div>
<div id="footer">
<div id="pied-bloc">
<div id="pied-bloc-conteneur">
<li><a href="acceuil.html" target=« _blank »>Contactez-nous</a></li>
</div>
<div class="art-footer">
<div class="art-footer-body">
<div class="art-footer-text">
<p>Copyright © 2011. All Rights Reserved.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body></html>
Merci beaucoup
|
|
mardi 23 août 2011 à 16:46:06 |
Re : code client

titi57100
|
Bonjour,
J'aurais également conseillé la variante 2 vu ton cas.
Table 1 :
Personne
ID_Personne
Nom // Raison Sociale
Prenom // null si Raison Sociale
Num_dossier
ID_adresse
ID_Type_Personne // Morale ou Physique
ID_Complement_Infos // Qui en fonction du type de personne va chercher les infos complémentaires dans la bonne table
Table 2 :
Type de personne
Id_Type_Personne
Libelle
Table 3 :
InfoSupplémentaireMorale
ID_Complement_Infos_Morale --> correspon à ID_Complement_Infos table Personne
.....
Tables 4 :
InfoSupplémentairePhysique
Id_Complement_Infos_Physique --> correspon à ID_Complement_Infos table Personne
Voilà pour mon exemple....
Cordialement,
Julien
|
|
mardi 23 août 2011 à 19:31:19 |
Re : code client

JulSoft
|
Pour répondre à ta solution titi57100, en fait c'est un espèce de mix entre deux approches. Perso je recommanderai pas. Des que t'introduit des champs potentiellement null, ça devient compliqué de vérifier l'intégrité de tes données...
Ma variante:
Personne(*ID_Personne, Num_dossier, -ID_Adresse, Type(enum) )
Personne_Morale(*-ID_Personne, Raison_Sociale, ...)
Personne_Physique(*-ID_Personne, Nom, Prenom, ...)
Adresse(*ID_Adresse, ...)
Ma notation est la suivante: *: clé primaire de ta table. Deux champs qui ont le même nom sont la même valeur pour un enregistrement donné. - indique une clé étrangère. Par exemple, l'ID_Personne pour une Personne_Morale est celui qui a été généré lors de l'insertion dans Personne.
Ca revient en fait à faire une relation d'héritage. C'est à mon avis la solution la plus souple. En effet, les données partagent certains attibuts (n° de dossier etc...), donc il faut au max éviter la redondance.
|
|
Cette discussion est classée dans : table, code, client, not, varchar
Répondre à ce message
Sujets en rapport avec ce message
requette php sur une table ayant 2 clés primaires [ par ngoudjo ]
salut voici la requette en question: $requete="select code_td,jour,debut,fin,code_salle,nbmax from grptd where code_ue='$codeue' "; et la table créer
create table innodb [ par fakoly77 ]
bonjour,j'arrive pas à créer une table qui comporte une clé étrangère d'une première table.create table client (id_client VARCHAR(255) NOT NULL PRIMAR
membres connectés problème [ par scanner ]
bonjour tout le mondevoila j'ai un petit problème je suis entrain de faire un site avec unespace membre avec session quand je me log c bon mon compteu
Création d'une table [ par panpan ]
Voici mon codes pour créé un nouvelle table dans ma base de bonnée:CREATE TABLE membres (clef int(11) NOT NULL auto_increment,pseudo varchar(25) NOT N
Creation d'une table dans ma base de donnée [ par panpan ]
Voici mon codes pour créé un nouvelle table dans ma base de bonnée:CREATE TABLE membres (clef int(11) NOT NULL auto_increment,pseudo varchar(25) NOT N
relation entre 2 tables [ par rastagnol ]
slt !!!voila G un pb pour mettre 2 tables en relations ... je ne sais pas trop comment m'y prendre. G une table commandes avec un champ client_id et u
creat table [ par kelm_by ]
salut tous le monde,je veux créer une base de donneés mais ca marche pas.pouvez vous m'aider svpmerci$connect = mysql_connect("sql.free.fr","********"
insertion dans la base [ par jolina87 ]
bonjour, je génère un code automatiquement de client avec une fonction que je viens de la créer ([code=php]$code = newChaine(); //générer automatiquem
recupération de la clef d'une table en php [ par msi079 ]
salut . j'ai une base de données dans laquel j'ai 2 tables que je dois liéer . la table pejudice 0 : CREATE TABLE IF NOT EXISTS `prejudice0` ( `id_p
afficher les derniers enregistrements d'un id [ par msi079 ]
salut a tous j'ai 2 tables : * client (id_client,nom) * articles (id_articles,reference,prix_unitaire,quantité) il se trouve que un client fait p
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|