Recuerdo leyendo este gran artículo en Zend sobre como almacenar datos de una eficiente utlizando las funciones de bits. Aquí tenemos un método simple para almacenar varios valores verdadero/falso en un entero simple. Algunos ejemplos que se han utilizado en aplicaciones son:
- en una agenda, la posibilidad de almacenar varios días seleccionados de una semana o un mes como un entero simple
- en un formulario con 30 chekboxes, almacenar la combinación como un entero simple
Estas funciones no sólo están disponibles en PHP, sino que podemos almacenar estas combinaciones de bits en base de datos y gracias a las funciones que MySQL posee para tratar campos binary, nos permite ejecutar consultas directas utilizando máscaras para realizar consultas directas. Un caso típico es el tratamiento de permisos sobre grupos de opciones almacenadas en bases de datos para generar un menú de forma dinámica, o simplemente, como en Unix, para determinar qué permisos puede tener un usuario sobre un proceso concreto de una aplicación.
El artículo completo de Zend está disponible aquí