J'ai un souci de "Comment bien faire en SQL" mais je suis sur que vous allez pouvoir m'eclairer..
Je suis en train de dvlp le module Oracle d'un logiciel..
(je viens d'arriver sur le projet, je n'ai pas participé à la conception du schéma BDD ni au dvlpement logiciel)
Ce logiciel gère (en autre) les caractéristiques de moteurs..
J'ai donc :
Code :
- TABLE simulation
- id_simulation (PK)
- nom
- id_moteur (clé etrangère référence à la PK du moteur associé)
- ...
|
Code :
- TABLE Moteur
- id_moteur (PK)
- nom
- ...
|
Code :
- et une Table RegimeMoteur
- TABLE RegimeMoteur
- id_regimemoteur (PK)
- id_moteur (clé etrangère référence à la PK du moteur associé)
- x
- y
- ...
|
Ce logiciel permet d'ajouter/supprimer/modifier les différents régime moteurs d'un moteur..
Mais le logiciel est concu de tel facon que on ne peut enregistrer directement les régimes moteurs, on ne peut qu'enregistrer un moteur (ses ses regime moteurs)...
Et C là que je bloque, je ne vois pas comment Updater un moteur (et ses regimesMoteurs) de la facon la plus simple ????
Exemple :
J'edite le nom du moteur, je modifie la ligne 1 du régime moteur associé et je supprime la 3ème ligne sur les 5 que le moteur comporte...
En mémoire (d'un point de vue Java), j'ai donc ma Structure Moteur qui contient une liste des regimes moteurs (au nombre de 4 maintenant)
J'enregistre le moteur
A ce moment là, je souhaite donc faire un update du moteur (et de ses caractéristiques)...
<> Au début, je pensais simplement faire un update sur la table moteur et pour chaque regime moteur, faire un update dessus..
Mais la ligne supprimée sera toujours présente en BDD et toujours associé à ce moteur
=> pas possible donc...
<> Je me suis dit que j'allais simulé un Update..
Faire un
DeleteMoteur (qui supprime en cascade les regimes moteurs)
Puis un InsertMoteur (avec insertion des differents moteurs regime)
Mais Pbr car le moteur est aussi referencé dans la simulation par son ID
=> pas possible donc..
<> Je suis en train de faire..
updateMoteur()
deleteRegimeMoteurPourCeMoteur()
InsertRegimeMoteurPourCeMoteur()
=> ca marchera mais je trouve que C un peu l'usine a gaz...
Je desespere de comprends vraiment quelle est la meilleur méthode..
Quelqu'un peut m'aider ???
(j'espere que j'ai reussi a faire comprendre mon probleme..)
Merciiiiiiii
Message édité par Dephi le 26-08-2003 à 16:36:44
---------------