Conseil MCD

beta
Invité n'ayant pas de compte PHPfrance

27 févr. 2006, 15:53

salut tout le monde ! je planche sur un mcd actuellement ! voici le contexte :
je gère des campagne publicitaires. j'ai des entrerpises clientes mais aussi des groupes. En fait un client peut ou pas faire parti d'un groupe. J'ai ensuite des contrats(date de mise en application, nombre de points) et des campagnes qui doivent être modélisé.

prenons un exemple (fictif :lol:) se sera plus parlant :

Le groupe coca cola est composé de 2 entreprises (fanta, pepsi). Un contrat est passé pour le groupe (date 26/02/06, nombre de points 10). L'entreprise fanta demande une campagne publicitaire le 28/02/06, ça va donc couter 4 points sur le contrat de Coca cola, je vais donc enregistrer la campagne en question pour l'entreprise fanta mais sur le compte de coca cola mettre à jour le nombre de points sur le contrat.
J'ai maintenant un nouveau client qui s'apelle Google, il ne fait pas parti d'un groupe. il demande une campagne le 01/03/06 ça va lui couter 3 points. J'enregistre la campagne pour google sur le contrat google.

Contraintes trouvées :
- 1 client appartient à 0 ou 1 groupe.
- à 1 groupe appartient 1 ou N clients.
- 1 contrat est passé par 1 et 1 seul groupe.
- 1 contrat est passé pour 0 ou 1 client. (dans le cas de coca par exemple c'est ni fanta, ni pepsi qui possède le contrat)
- 1 campagne est organisé pour un est un seul client. 1 client demande 0 ou N campagnes.

j'ai modélisé cela de cette façon (simplifié):

client(numero, nom, adresse, num_groupe#, num_contrat#)
groupe(numero, nom, num_client#, num_contrat#)
campagne(numero, date, points, num_client#)
contrat(numero, points_restants, num_groupe#, num_client#)

Le problème de cette modélisation c'est que ça me donne beaucoup de clef étrangère :roll: Si je dois créer un nouveau groupe par exemple il faudrait pouvoir renseigner le numéro de contrat associé au groupe (clef étrangère) hors normalement on crée le groupe est l'associe à un contrat après plutot...

qu'en pensez-vous ? comment verriez-vous la modélisation de ce chose :lol: ?

merci !