Tengo un (ficticio) estructura de la tabla de la siguiente manera:Tipo de usar para las columnas "Estado" en una tabla de SQL
ticket id: int(11) PK name: varchar(255) status: ?????????
La pregunta es, ¿qué tipo de datos debo utilizar para el estado? Aquí están mis opciones, como los veo:
- varchar que representa el estado - BAD porque no hay integridad
- enumeración que representa el estado - BAD porque para cambiar el valor, que tendría que modificar la tabla, y entonces cualquier código con menús desplegables para los valores, etc, etc, etc
- int FK a una tabla de estado - bueno porque es dinámico, BAD porque es más difícil de inspeccionar a simple vista (que puede ser útil) FK
- varchar a un estado de table - BUENO porque es dinámico y visible en la inspección. MALO porque las claves son significativas, lo que generalmente es desaprobado. Curiosamente, en este caso es completamente posible que la tabla de estado tenga solo 1 columna, lo que la convierte en una enumeración glorificada
¿Tengo una lectura precisa de la situación? ¿Tener una clave significativa realmente es tan malo? Porque si bien me da piel de gallina, no tengo ninguna razón para ello hacerlo ...
Actualización: Para la opción 4, la estructura propuesta habría estado : char (4) FK, a una tabla de estado. Así,
OPEN => "Abrir"
CLOS => "Cerrado"
"esperar" => "Autorización pendiente"
"PROG" => "En curso
¿Cuál es la desventaja en este caso? el único beneficio que puedo ver de utilizar int sobre carbón en este caso es ligero rendimiento.
fuera de tema, debe pasar a DBA SE –