Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/06/2006, 12h35   #1
000
Nouveau Membre du Club
 
Inscription : décembre 2005
Messages : 36
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 36
Points : 25
Points : 25
Par défaut [SQL] Problemes avec des champs uniques

Bonjour,

cela concerne plus un problème de conception que de problème au niveau SQL.

Voici le contexte:
J'ai une table de produit contenant les champs nom, reference, prix,stock, actif ...
Si actif est à oui, il est possible de le commander. Je met actif à non pour dire qu' il n'est plus possible de le commander, je ne veux pas supprimmer le produit pour garder un historique. Les couples (nom,actif) et (reference,actif) sont uniques.

Voici donc le problème:
On créé un produit ensuite on l'inactive puis on créé un autre produit avec le meme nom. Donc dans la BDD, on aura un produit inactif et actif ayant le meme nom. Ensuite si on veut mettre inactif le produit actif, il y a un probleme car le couple (nom,actif) est unique, il y aura donc une erreur.
Que proposez vous comme solution ?


J'ai peur de ne pas avoir été très clair, j'espere que vous comprendrez.
000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2006, 13h27   #2
Membre régulier
 
Avatar de ashurai
 
Inscription : juillet 2004
Messages : 144
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2004
Messages : 144
Points : 88
Points : 88
La question qu'il faut se poser est "Est t'il possible d'avoir un produit actif et un autre inactif avec le même nom ?".

Car, si j'ai bien compris, tu as un produit nommé "Prod1" qui n'est plus disponible (actif=false).

Soudain ! Un nouveau produit nommé lui aussi "Prod1" apparait et est disponible(actif=true). Cela ne serais t'il pas le synonyme de "Le précedent produit Prod1 redevient disponible" ?

En ce cas, la clé unique est le nom, tu te moque du actif ou pas. En tous cas, c'est ce qui me semble logique.

Ou tu peux mettre le couple nom-référence unique, mais je ne penses pas qu'il faille mettre de notion d'unicité avec une notion de disponibilité d'un produit censé être déjà unique.

En fait, tu dois avoir un produit nom-référence unique qui peux être actif ou non.

Crois tu que cela correspond à ton besoin ?
ashurai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2006, 13h28   #3
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Si c'est clair, mais je vois pas où il y a du PHP là-dedans... Donc pas le bon forum...

Je comprends pas pourquoi c'est pas le couple (nom, référence) qui est unique

En tout cas dans le forum approprié tu auras de meilleures réponses.
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h56.


 
 
 
 
Partenaires

Hébergement Web