Structuration de ma base

Eléphant du PHP | 77 Messages

01 juin 2005, 10:51

Bonjour,

Je travaille sur un projet dont j'ai spécifié les besoins mais je ne sais pas comment structuré ma base de données.

Le projet se compose de cette manière :

Un client avec des propriétés (nom, prénom) possède une liste de course spécifique avec des propriétés (nom de la liste, recette prévue). Cette comprend des fruits avec des propriétés (nombre, prix), pouvant être achetés par d'autres clients.
Un client peut avoir plusieurs listes de cours différentes.

J'espère être clair. Merci. lulu.

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

01 juin 2005, 17:16

Commençons par identifier les entités et les associations :
Les fruits (nombre et prix) sont indépendants des listes clients et des clients eux même : C'est une entité.
Le client (nom et prénom) est lié à ses listes de courses qui contiennent des fruits : Le client est indépendant de sa liste et des fruits c'est une entité. Mais une liste n'existe que si un client et des fruits se rencontrent : la liste est une association de client/fruit.

Fréquences:
  • 1 Client peut avoir N listes.
    1 Liste appartient à 1 client et contient N fruits.
    1 Fruit figure éventuellement dans N listes de différents clients.
Le modèle :

Code : Tout sélectionner

Client -- 0,N ---> Liste Liste -- 1,1 --> Client Liste -- 0,N --> Fruit Fruit -- 0,N --> Liste Il n'ya pas de lien direct entre un client et un fruit, seule ses listes permettent de définir ce lien.

Le dictionnaire Entité/Association:

Code : Tout sélectionner

Client (id (unique), nom, prénom) Liste (date, quantité_achetée) Fruit (id (unique), quantité_en_stock, prix) Les liens : Entre Client et Liste Entre Liste et Fruit
Le modèle relationnel :
Les tables :

Code : Tout sélectionner

Client (id (unique), nom, prénom) Liste (date, quantité_achetée , id_client (lien avec client), id_fruit (lien avec fruit)) Fruit (id (unique), quantité_en_stock, prix)
Les relations :
  • Client.id = Liste.id_client
    Liste.id_fruit = Fruit.id
Script SQL:

Code : Tout sélectionner

CREATE TABLE Client (id int, nom varchar(30), prenom varchar(30) , PRIMARY KEY (id)) CREATE TABLE Liste (date datetime, quantité_achetée int, id_client int, id_fruit int, KEY id_client (id_client), KEY id_fruit (id_fruit) ) CREATE TABLE Fruit (id int, quantité_en_stock int, prix double, PRIMARY KEY (id))
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphant du PHP | 77 Messages

02 juin 2005, 17:02

Merci de ce découpage pédagogique parfaitement clair. Je vais essayer de m'y retrouver.

lulu.