Page 1 sur 1

Structuration de ma base

Posté : 01 juin 2005, 10:51
par lulumOriss
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.

Posté : 01 juin 2005, 17:16
par sadeq
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))

Posté : 02 juin 2005, 17:02
par lulumOriss
Merci de ce découpage pédagogique parfaitement clair. Je vais essayer de m'y retrouver.

lulu.