hola
Mon énoncé est le suivant : (les annotations fluotées sont pas de l'énoncé)
voici ce que j'en ai déduit , ca vous semble correct ? merci je galere n peu ^^
des chose à éventuellement rajouté ?
merci
Alors personnellement, je ferais une table Localités.
Ton exercice dit que tu dois pouvoir proposer un trajet allant du point A (une localité) au point B (une autre localité).
Admettons que t'as un conducteurs qui fait Nantes - Besançon en passant par Lyon et Marseille (c'est complétement con, oui, mais c'est pour illustrer), ben tu vas faire comment ? T'auras peut-être un gars qui veut faire Marseille - Besançon et qui pourra pas, car tu mémorise seulement le départ et l'arrivée.
A mon avis, faut une table localité où tu mémorises (pour commencer) toutes les villes de tes utilisateurs (clients ou conducteurs), comme ça tu supprimes ton "user_address", tu mets les champs personnelles (rue, N° de rue) dans le user, et le reste dans localité (NPA, Ville, Pays).
Parce qu'un trajet (ride), il aura plusieurs Localités, et peut-être plusieurs Clients (users). Pas juste un départ et une arrivée, tu vois le genre ?
EDIT: Après je le fais à la va-vite à froid, hein.
Je vais test ca ^^ merci je poste le résultat après
juste comme ça, te manque le nombre de place disponible par voiture pour un voyage donné
bien vu ^^^merci khey
Le 07 mai 2017 à 20:44:51 Mumbo_Jumbo a écrit :
moi j'aurais fait une table user et driver qui en hérite puisque t'a pas mal de champs similaire entre user et driver
j'y ai pensé , je comptais faire une interface ou une classe abstraite "people" comme je fais en java ou c# avec le classique nom,prenom,... mais je ne savais pas que je pouvais faire une interface en uml
un grand merci à tous déjà ^^
dsl noelshack est down ; modif => http://hpics.li/9ed54bf
j'ai donc réorganisé user_address en locality avec ses attributs
ajouter le nombre de place
ajouter le rajout d'user ( sous entendu un passager supplémentaire pris sur le chemin )
je ne suis par contre absolument pas sur du fonctionnement de l’héritage pour me classe , je ne vois pas trop la différence entre les heritages et les extends dans l'uml
Petite idée.
Tu rajoutes dans ta classe user un champ driver_id qui peut être null. Et dans driver juste le numéro de permis. Comme ça, pas de redondance des champs. Et puis ça me semble plus logique de me dire qu'un conducteur peut être aussi un utilisateur.
j'y ai aussi pensé c'est dans mes version brouillon tout comme les interfaces ^^
après rétroflexion :
-effectivement comme TheRealMarco me l'a suggérer un Driver est avant tout un User , pour éviter la redondance j'ai mis Driver¨_id dans User.
-Driver etant un user j'ai enlever User_address et User_destination de locality
- Enlever les champs redondant de Driver et laisser juste l'id comme primary Key pour le relier a User et Car + numéro de permis
d'autre modification à me suggérer ?
Pourquoi ne pas simplement utiliser un champ "Role" dans ta table user ?
Tu n'aurais plus à te casser la tête avec user_id ou driver_id
Passe tous tes champs de la table User en facultatif/nullable, et dans ta logique (PHP j'imagine) tu check selon le role est-ce que tel ou tel champ a été renseigné.
Bon, on pourrait encore plus factoriser tout ça, mais ça ne serait pas te rendre service je pense que de t'amener la solution toute faite
Le 08 mai 2017 à 17:20:30 wxcvbn789 a écrit :
Pourquoi ne pas simplement utiliser un champ "Role" dans ta table user ?
Tu n'aurais plus à te casser la tête avec user_id ou driver_id
Je sais pas si j'ai correctement compris, mais ça enlèverai la possibilité pour un utilisateur de devenir driver et inversement.
Le 08 mai 2017 à 17:23:29 TheRealMarco a écrit :
Le 08 mai 2017 à 17:20:30 wxcvbn789 a écrit :
Pourquoi ne pas simplement utiliser un champ "Role" dans ta table user ?
Tu n'aurais plus à te casser la tête avec user_id ou driver_idJe sais pas si j'ai correctement compris, mais ça enlèverai la possibilité pour un utilisateur de devenir driver et inversement.
AH bon, pourquoi ?
Un champ role qui serait dans la table user empêcherait le changement de role ?
Je le fais dans pas mal de projets, jamais eu de soucis
Si je fais un champ rôle je devrai faire un Héritage user et driver alors ?
Pour moi un driver est aussi un user vu qu'il utilise l'application
Desole si je pose des bêtes questions mais je débute en projet alors que je suis en dernière année de bachelier ( en belgique ) je sais pss si en France ça s'appelle comme ça aussi
J'ai justement obtenu un bachelier belge Informatique de gestion
Bon, tu as eu combien à ton module Analyse et SGBD ?
Un user est un driver, on est d'accord ?
Un driver est aussi un user, on est d'accord ?
Un passager peut devenir driver, on est d'accord ?
Un driver peut vouloir être passager lors d'un trajet et ne pas utiliser sa voiture, on est d'accord ?
Tes logiques de contraintes (ex : un user ne peut créer ou proposer un trajet) ne doit pas être au niveau de ta BDD à mon sens, mais dans ton code.
Par ce fait, tu peux imaginer qu'une seule table user, regroupant tes informations propres à un passager et tes infos propres à un driver.
Donc une table comme ceci :
User:
- id
- role : string (contient le rôle de l'user, est-ce un passager ? est-ce un driver ?) / NOT NULL/OBLIGATOIRE car cette information est commune aussi bien aux passagers qu'aux drivers
- name : string / NOT NULL/OBLIGATOIRE car on veut le nom/prénom de tout le monde
- last_name : string / NOT NULL/OBLIGATOIRE car on veut le nom/prénom de tout le monde
- birthday : date (l'âge sera calculé dans ton code PHP à partir de cette date) / NOT NULL/OBLIGATOIRE car cette information est nécessaire pour éviter les mineurs
- driver_licence_number : string / NULL/FACULTATIF car cette information n'est pas obligatoire pour tous les users mais seulement ceux qui possèdent le role DRIVER : du coup tu devras vérifier dans ton code PHP (au moment de la création ou l'update d'un user possédant ce rôle), est-ce qu'il a renseigné son numéro de permis ? Si oui c'est ok, sinon on n'update pas la BDD et on renvoi une erreur sur le formulaire.
Bon, pour les autres champs débouilles-toi, je t'ai (je pense) donner toute la logique nécessaire.
merci je fais ca se soir ^^ fin plus tard au soir x)
un grand merci
De rien l'ami
ah et j'ai eu 87 en analyse et 70-75en sgbd ^^
Sérieux ? Tu devrais pas galérer normalement
c'est que mon prof m'a legerment embrouillé ...
en fait j'en ai eu 2 : un à la Louvière et un à écaussine
celui de la Louvière est focus sur la méthode meurise alors qu'à écaussines il est plus moderne
un me dit blanc l'autre me dit noir
par exemple celui de la Louvière veux créer un module inscription dans la base de données alors que c'est pas nécessaire j'ai vu ça nul part . Du coup je m'étais focus à différencier tout les acteurs