Une amie à un blème avec SQL Server + TransactSQL, et j'avoue que je vois pas comment le résoudre.
Voila ce qu'on lui demande de faire :
Table 1 qui s?appelle toto
ID Nom Surnom Stat Tel Adresse
1 Toto1 Nick1 296 08250852 Rue Machin
2 Toto2 Nick2 307 08250852 Rue Machin
3 Toto3 Nick3 256 08250852 Rue Machin
4 Toto4 Nick4 560 08250852 Rue Machin
5 Toto5 Nick5 308 08250852 Rue Machin
6 Toto 6 Nick6 309 08250852 Rue Machine
Certains utilisateurs sont des « Super Vendeurs » ou/et des SuperAcheteurs. Il existe plusieurs niveaux de SuperAcheteurs et de SuperVendeurs qui se classent de 1 à 3 Il est utile de les regrouper dans une table CustomerSellers qui contient seulement (selon ce qu?on me demande de faire) ID, StatBuyer, StatSeller. Avoir un stat =307 correspond avoir un StatBuyer =1
Avoir un stat =308 correspond avoir un StatBuyer =2
Avoir un stat =309 correspond avoir un StatBuyer =3
Pour l?instant StatSeller qui correspond à SuperVendeurs est vide
On a donc la table suivante. ID StatBuyer StatSeller
2 1 NULL
5 2 NULL
6 3 NULL
Mais maintenant que l?on a crée cette table la colonne stat de toto est devenue inutile mais seulement pour ID égal à 307, 308 et 309 puisque je distingue les niveaux des personnes. Il paraît que cela fait gagner de la place mais ayant déclaré Stat en tinyInt le gain de place me semble un peu minime. Mais bon c?est le chef.
ID est un INT
StatSeller sera de type TINYINT
Donc on veut obtenir la table suivante :
ID Nom Surnom Stat Tel Adresse
1 Toto1 Nick1 296 08250852 Rue Machin
2 Toto2 Nick2 RIEN 08250852 Rue Machin
3 Toto3 Nick3 256 08250852 Rue Machin
4 Toto4 Nick4 560 08250852 Rue Machin
5 Toto5 Nick5 RIEN 08250852 Rue Machin
Le problème c?est que je ne peux pas mettre NULL dans cette case car je change la valeur du Stat et c?est pas bon puisque toto.stat est déclaré en ForeignKey de CustomerSellerts.
De plus je ne peux pas retirer la colonne puisque j?enlève le Stat des gens qui ne sont pas SuperVendeurs. Je pourrais faire deux tables une toto mais sans la colonne Stat et une table avec les Stat de tous le monde mais mon chef ne veut pas.
Donc voilà le problème que je dois résoudre. Il m?a prévenu que c?était compliqué qu?il fallait utilser des flags ( ?????). |
une idée sur ce que pourrait être ces flags ?
Message édité par joce le 05-03-2003 à 22:55:18