DELETE avec contre-verification
Bonjour,
J'ai une table de liaison entre des sociétés et des utilisateur structurée ainsi :
t_compte
---
id, societe, utilisateur, status
status indique si l'utilisateur est "propriétaire" (1) ou "délégué" (0).
seul le "propriétaire" d'une société peut supprimer des utilisateurs "délégué" de cette société.
L'interface HTML/PHP transmet uniquement l'id à supprimer et l'utilisateur demandant la suppression.
L'idée est donc de vérifier que l'utilisateur supprimant est bien "proprietaire" de la societé.
J'ai écris une requete de suppression de "delegué" ainsi avec une sous-requete :
Code:
1 2 3 4 5 6 7 8
| DELETE FROM t_compte
WHERE id=12345
AND societe IN (
SELECT societe
FROM t_compte
WHERE status = 1
AND utilisateur=toto
) |
Est-ce que cela vous parrait bon ou completement nul ?
Y a t'il une meilleur maniere de l'écrire en SQL ?
L'alternative que j'avais étant de découper et utiliser le langage de programmation :
1 - trouver la société correspondant à l'id
2 - vérifier si l'utilisateur est "propriétaire" de cette société
3 - si oui faire la suppression.
Merci de votre aide.