Salut à toutes et à tous!

Je suis en train de développer un petit système de facturation utilisant plusieurs tables pour pouvoir générer/supprimer/éditer des factures.
Je suis au tout début et je pense à mes tables. J'ai créer 5 tables qui sont les suivantes :

  • factures -> contient : N°, date
  • clients -> contient : nom, adresse, tel, email
  • produits -> contient : designation, ref, PU, qté
  • caracterisques (produits) -> contient : nom, valeurs
  • annexes -> contient : photo, léngede

Voici comment elles sont liées :
factures 1:1 clients 1:n produits 1:n caracterisques
produits 1:n annexes

Je voudrais savoir comment arriver à créer une requête à jointure qui me permette de récolter toutes les informations des tables que je placerai dans mon model. Mon controller se chargera de récupérer les infos dont il à besoin en fonction de chaque action.

Est ce que je suis dans la bonne voie? Et si oui, comment créer ces jointures pour avoir un seul array avec les autres array à l'intérieur.

Je vous remercie par avance pour toute votre aide!

6 réponses


personne pour me guider?

Hello LivinInChina,

Soit tu as créee les models correspondants à tes tables, et dans ce cas tu n'a plus qu'a les relier entre elles grace aux associations hasOne, hasMany directement intégrées dans cakephp..

un simple $this->TonModel->find('all'); te permettra de récupérer l'ensemble si tes liaisons sont bien faites..

Soit une requete basique dans ton controller $this->TonModel->query("Ta requete classiqu");

bonne chance.

Bonjour uNITED et merci de ta réponse.

Sachant que j'ai pas mal de tables 5 justes pour ce système, tu me conseilles laquelle des 2 solutions?

Merci d'avance

Salut
Si tu utilises le framework cakePHP autant qu'à faire je te conseille d'utiliser son systeme MVC, un modèle par table , tu définie comme le dit LivinInChina les relations entre tes modèles avec les mots clefs hasOne et hasMany et tu ne te soucies plus de rien :)
Les jointures se feront automatiquement, et finalement c'est très pratique, pareille pour la sauvegarde ce sera automatique en base.

Salut jey1985 et merci pour ton conseil.
Je vais regarder ça de plus près, faire des tests et je reviens avec un code à vous montrer ;)

Merci à vous

Bonjour! Je reviens vers vous pour vous demander de l'aide. Je ne sais pas par où commencer pour relier mes tables.
Voici mon diagramme de table :

Comme vous pouvez le voir je voudrais créer un système de proposition commerciale.

Ce que je voudrais c'est pouvoir afficher une proposal avec tout ce qu'elle contient, à savoir le contenu de toutes les autres tables.

En parallèle, je voudrais créer une partie d'administration pour pouvoir créer de nouvelles proposition.

Pour la partie admin, je pensais la créer en 2 pages, la 1ere contiendrait 2 formulaires (proposal et client) et la seconde 3 formulaires (products, specifications et appendices).

Je me pose plusieurs question quand à la construction de mon code. En ayant pris connaissance de ces détails et en sachant que je compte créé les modèles correspondant aux tables comme vous me l'avez conseillé, comment procèderiez vous?

Combien de modèles dois-je créer? Que doivent-ils contenir? Dois-je faire les requêtes dans les controllers ou dans les modèles?

J'ai lu sur un article anglais "build fat models and slim controller" qui signifie en gros faites de gros modèles et de légers controllers.

Merci d'avance pour toute votre aide!