Problème avec Merise

Problème avec Merise - SQL/NoSQL - Programmation

Marsh Posté le 17-03-2008 à 09:17:37    

Bonjour  
Je dois écire sur papier un Modèle conceptuel de données.
J'ai un problème concernant le fait suivant.
Un client peut souscrire lorsqu'il le souhaite à une ou plusieurs options de téléphonie. La date de souscription doit être conservée. Si le client résilie une option, la date de résiliation doit également être conservée. Certaines options s'excluent les unes avec les autres.
Le système d'information doit stocker ces incompatibilités.
Par exemple le client ne peut pas souscrire à la fois à l'option appel illimité et à l'option mail.
Comment représenter cette contrainte dans le MCD ?
Je pensais à une cardinalité 0,n du côté client et une cardinalité 0,n du côté option avec une association souscrire dont les propriétés sont date de souscription et date de résiliation mais je n'arrive à intégrer cette incompatibilité entre options dans le MCD ou comment la représenter ?  :pt1cable:  

Reply

Marsh Posté le 17-03-2008 à 09:17:37   

Reply

Marsh Posté le 18-03-2008 à 11:23:05    

Une association qui part de "Option" et qui va vers "Option" en cardinalité 0..n avec association "exclure".
 
Cela te crééera une table exclure contenant les id des options qui vont pas ensemble ?
 
Cela resoud ton problème ?


---------------
How can I save my little boy from Oppenheimer's deadly toy ? There is no monopoly of common sense on either side of the political fence
Reply

Marsh Posté le 18-03-2008 à 11:29:23    

Donc pour toi on aura une réflexive sur l'entité option ?
Je vais y réfléchir. Ca m'as l'air correct.
Merci de ton aide.

Reply

Marsh Posté le 18-03-2008 à 11:42:19    

Oui je ne vois pas d'autres solutions pour résoudre ton problème.
En imaginant la future BD il te faut un table qui donne pour un ID les ID qui sont exclus et cela pase par une reflexive AMHA.


---------------
How can I save my little boy from Oppenheimer's deadly toy ? There is no monopoly of common sense on either side of the political fence
Reply

Marsh Posté le 18-03-2008 à 12:23:32    

Et l'entité Client je la relie quand même à l'entité option ?
Elle ne peut pas être reliée à l'association exclure ?

Reply

Marsh Posté le 18-03-2008 à 13:05:46    

Oui
Non ca n'aurait pas de sens Exclure\date soucription\date résiliation


---------------
How can I save my little boy from Oppenheimer's deadly toy ? There is no monopoly of common sense on either side of the political fence
Reply

Marsh Posté le 18-03-2008 à 13:20:13    

Merci beaucoup car je me cassais la tête avec ce problème depuis un petit bout de temps.
Par contre, du côté traitement même en ayant créé une table exclure avec la liste des options incompatibles, comment empêcher la saisie d'une souscription erronée à deux options voire trois ?  

Reply

Marsh Posté le 18-03-2008 à 15:01:25    

BD
EXCLURE : {id_opt1, id_opt2}
 
Traitement  
$datesouscription, $opt1, $opt2, $opt3
SELECT * FROM EXCLURE WHERE id_opt1 = $opt1 AND (id_opt2 = $opt2 OR id_opt2 = $opt3)
-->
Si nbresultat>0 ALORS afficher erreur (avec des jointures et une requete un ^peu propre tu peut faire error : nom_opt1 incompatible avec nom_opt2)


Message édité par bpoujol le 18-03-2008 à 15:01:52

---------------
How can I save my little boy from Oppenheimer's deadly toy ? There is no monopoly of common sense on either side of the political fence
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed