par
Gorghor » 20 mai 2009, 17:04
Salut,
Me voilà de nouveau confronté à un probleme de logique SQL.
Sur mon projet actuel, l'utilisateur a la possibilité d'ajouter une annonce sur le site. Cette annonce comporte des éléments stockés sur 4 tables différentes (l'annonce elle-même, l'adresse, un nombre x de fichiers et un log).
Comment faire pour inserer dans les 4 bases de facon intelligente?
Pour l'instant, je procède de facon linéaire:
- - j'ajoute d'abord l'adresse si elle est définie ds la table adresses
- je récupère l'id_adresse, j'ajoute ensuite l'annonce ds la table annonces
- je récupère l'id_annonce, j'ajoute les x fichiers ds la table fichiers
- j'ajoute une premiere entrée ds le log
Si lors de l'une des 4 étapes il y a une erreur , je fais un DELETE sur chaque entrée concerné et je renvois au formulaire, sinon je renvois sur l'annonce fraîchement ajoutée.
Est-ce une approche raisonnable ou serait-il plus malin de procèder autrement (table temporaire? autre?)
De plus, suite a mes recherches, je ne sais plus vraiment si se fier à l'id automatique (avec auto increment) est vraiment une bonne idée.
Merci!
Ludwig
Salut,
Me voilà de nouveau confronté à un probleme de logique SQL.
Sur mon projet actuel, l'utilisateur a la possibilité d'ajouter une annonce sur le site. Cette annonce comporte des éléments stockés sur 4 tables différentes (l'annonce elle-même, l'adresse, un nombre x de fichiers et un log).
Comment faire pour inserer dans les 4 bases de facon intelligente?
Pour l'instant, je procède de facon linéaire:
[list]- j'ajoute d'abord l'adresse si elle est définie ds la table adresses
- je récupère l'id_adresse, j'ajoute ensuite l'annonce ds la table annonces
- je récupère l'id_annonce, j'ajoute les x fichiers ds la table fichiers
- j'ajoute une premiere entrée ds le log[/list]
Si lors de l'une des 4 étapes il y a une erreur , je fais un DELETE sur chaque entrée concerné et je renvois au formulaire, sinon je renvois sur l'annonce fraîchement ajoutée.
Est-ce une approche raisonnable ou serait-il plus malin de procèder autrement (table temporaire? autre?)
De plus, suite a mes recherches, je ne sais plus vraiment si se fier à l'id automatique (avec auto increment) est vraiment une bonne idée.
Merci!
Ludwig