SQL Server et les flags ?? - SQL/NoSQL - Programmation
Marsh Posté le 05-03-2003 à 23:26:04
ce que son bosse appelle 'flag', c'est pas simplement une colonne supplémentaire avec un nombre dedans pour une des tables ?
là où j'ai fait mon stage, les anciens utilisaient ce terme aussi
Marsh Posté le 05-03-2003 à 23:28:10
trueslash a écrit : ce que son bosse appelle 'flag', c'est pas simplement une colonne supplémentaire avec un nombre dedans pour une des tables ? |
honnetement je pense pas, je pense que c'est plutôt une feature pour désactiver la contrainte d'integrité (sans ca je vois pas comment il pourrait faire)
Marsh Posté le 05-03-2003 à 23:54:01
ben en tout cas, le pb se règlerait facilement en demandant ce que sont ces fameux flags
j'ai fait du sql server avec du transact SQL cet été pdt mon stage et jamais entendu parler (à part ce que j'ai dit plus haut )
Marsh Posté le 06-03-2003 à 09:10:24
me demande si ca pourrait pas être réglé par un truc de ce genre :
http://msdn.microsoft.com/library/ [...] t_7gmj.asp
Marsh Posté le 06-03-2003 à 09:28:50
Ca revient au même que de changer les propriétés de la contrainte pour qu'elle ne checke pas les valeurs.
Sinon j'aurais dit comme trueslash, une sorte de champ témoin Ce qui n'annule évidemment pas le besoin de changer les propriétés de la contrainte pour que ça marche
Marsh Posté le 06-03-2003 à 10:34:08
en fait ce qu'il appelait flags c'etait un masque, et la foreign key etait sur le champ ID
Marsh Posté le 05-03-2003 à 22:54:00
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