Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[mySQL] : Update sur les bits

3 réponses
Avatar
lolo
Bonjour,

J'ai une table avec un champ etat du type int. J'utilise chaque bit pour des
valeurs OUI ou NON.

Mon problème est que je ne sais pas faire un UPDATE de chaque bit sans
toucher aux autres : par exemple mettre UNIQUEMENT le bit 0 à 1.

Merci de votre aide

3 réponses

Avatar
Jean-Marc Molina
lolo a écrit/wrote :
J'ai une table avec un champ etat du type int. J'utilise chaque bit
pour des valeurs OUI ou NON.

Mon problème est que je ne sais pas faire un UPDATE de chaque bit sans
toucher aux autres : par exemple mettre UNIQUEMENT le bit 0 à 1.



Surprenante comme solution. Tu peux nous indiquer la signification de
certains bits ? Pourquoi ne pas avoir opté pour des booléens ou des CHAR si
les BOOL ne sont pas supportés par ton SGBD ?

--
Jean-Marc.
Avatar
Jean-Marc Molina
lolo a écrit/wrote :
En revanche là tu soulève un problème auquel je n'avais pas pensé....
Pour le moment dans ces champs je stocke les droits d'accès
principalement, je ne pense pas avoir besoin d'utiliser les indexes.



Si ça peut t'aider pour gérer des droits d'accès j'utilise simplement deux
tables :
- Droits d'accès
- Droits d'accès pour chaque utilisateur

Je pense qu'une telle solution répond aux "raisons" que tu as énumérées dans
ta réponse précédente. Souple car il suffit d'ajouter un nouveau droit dans
la table des droits d'accès, simple car je trouve cette solution assez
élégante et logique, pas trop encombrante... perso j'ai oublié l'argument
"Octet Vs. Bit" depuis longtemps. Sans compter qu'au niveau de la conception
donner un sens aux bits au milieu d'octets reste assez fastidieux... Quand
on a plus de 8 droits il faut ajouter un nouvel octet et définir de nouveaux
droits pour chacun des bits... Je trouve ça trop casse-tête :). Et je ne
parle même pas de l'implémentation où il faut surtout de pas se tromper de
bits quand on récupère un droit... Trop trop compliqué je trouve.

--
Jean-Marc.
Avatar
Patrick Mevzek
Le Mon, 22 Aug 2005 15:59:54 +0200, Jean-Marc Molina a écrit :
Quand
on a plus de 8 droits il faut ajouter un nouvel octet et définir de nouveaux
droits pour chacun des bits...



Pas nécessairement. Comme varchar(), il y a varbit() qui permet d'avoir
un champ avec autant de bits que l'on veut.

--
Patrick Mevzek . . . . . . Dot and Co (Paris, France)
<http://www.dotandco.net/> <http://www.dotandco.com/>
Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>