2010-11-28 17 views
17

¿Cuál es la mejor práctica para los campos que tienen valores verdaderos/falsos?enum ('yes', 'no') versus tinyint - ¿cuál usar?

Tales columnas se pueden definir como enum ('yes', 'no') o como tinyint (1). ¿Es uno mejor/más rápido que el otro?

¿Es mejor usar enum ('1', '0') vs. enum ('yes', 'no') (es decir, escribe 'yes' o 'no' como una cadena en cada fila por lo que el tamaño de almacenamiento de la base de datos se hace más grande)?

+3

er ... ¿usar booleano? –

+3

Un booleano es básicamente una minúscula (1). – kapa

Respuesta

11

Además, ENUM es una extensión MySql no estándar. Debe evitarlo, especialmente si puede lograr los mismos resultados de manera estándar.

12

BOOLEAN tipo está ahí por una razón. De hecho, es TINYINT(1) pero como está allí, debe ser la forma recomendada.

15

evitar enum de esta reasons

La conclusión es que ENUM tiene su lugar , pero deben utilizarse con moderación. El modelo debe aplicar las restricciones , no la base de datos; el modelo debe manejar la interpretación de datos brutos en información útil para sus vistas, no la base de datos.

Cuestiones relacionadas