Un db con varios cientos de tablas generalmente tendrá más de pocas enumeraciones/conjuntos definidos en él.
¿Cómo se sincroniza el código PHP con los valores enum, para evitar el uso de literales de cadena en el código (que todos sabemos que parece más fácil, pero a la larga provoca errores estúpidos).
La única buena solución que puedo pensar es usar, durante la compilación del proyecto, un proceso que generará constantes para todas las enumeraciones en el DB, o bien, crear y compilar una extensión PHP con esos valores.
¿Alguna solución diferente, mejor por ahí?¿Cómo se sincronizan las enumeraciones en DB con su código PHP?
Respuesta
Como diría Platón: o bien PHP y SQL son independientes, o SQL se genera a partir de PHP, o PHP se genera a partir de SQL, o ambos se generan desde la misma fuente.
La primera suele ser inaceptable si se producen muchos cambios, pero por lo demás es bastante estable.
Lo segundo es lo que sucede con un lof de soluciones recientes que administran su SQL desde el lado de PHP (y manejan con gracia los cambios de esquema desde el lado de PHP también). Esto significa que tus habilidades locas de SQL ninja podrían ser inútiles y frustrante.
El tercero es lo que sugiere. Está bien siempre que pueda administrar la parte "generado durante la construcción" sin pisar los dedos de su sistema de control de fuente y su sistema de paquete. Tener un sistema de compilación limpio ayuda (lo cual es algo inusual en PHP).
El cuarto consiste en adaptar una herramienta de modelado de base de datos existente para generar tanto el esquema SQL como el código PHP. De esta forma, simplemente trabajaría con la herramienta una vez cada dos semanas, generaría tanto PHP como SQL y comprometería el resultado. La adaptación de la herramienta, sin embargo, puede ser bastante desagradable (de nuevo, puede intentar buscar una exportación XML y trabajar desde allí).
- 1. ¿Cómo se refactoriza su antiguo código PHP?
- 2. ¿Cómo se implementan las enumeraciones en Java?
- 3. Enumeraciones en DB o NO Enums en DB
- 4. Averigüe dónde se ralentiza su código PHP (problema de rendimiento)
- 5. ¿Las enumeraciones en C# tienen su propio archivo?
- 6. ¿Cómo se sincronizan las volcadas de página con el retroceso vertical en una aplicación SDL con ventana?
- 7. Mejores prácticas de tablas de búsqueda: Tablas DB ... o Enumeraciones
- 8. ¿Por qué las secuencias de id SQL no se sincronizan (específicamente usando Postgres)?
- 9. ¿Las enumeraciones son compatibles con JDBC?
- 10. Ayuda con enumeraciones en Java
- 11. no puede compilar las enumeraciones en Eclipse
- 12. Cómo usar enumeraciones en las señales y ranuras Qt
- 13. ¿Cómo puedo gestionar qué datos se sincronizan con la memoria caché de un cliente Meteor?
- 14. ¿Cómo se definen las propiedades de una clase en php?
- 15. ¿Cómo reescribir con éxito el código mysql-php antiguo con las funciones mysql_ * obsoletas?
- 16. Las sesiones almacenadas en un caché de Azure con ubicación conjunta no se sincronizan en varias instancias
- 17. ¿Cómo se almacena el código y los archivos para su uso en todas las máquinas?
- 18. Uso de las enumeraciones en ctypes.Structure
- 19. ¿Cómo se comportan las transacciones distribuidas con múltiples conexiones al mismo DB en un entorno enhebrado?
- 20. ¿Deben reemplazarse las variables estáticas por enumeraciones?
- 21. ¿Por qué las enumeraciones de TypeLib no están expuestas como enumeraciones en Visual Basic 6.0?
- 22. ¿Cómo se saltea las migraciones fallidas? (rake db: migrate)
- 23. ¿Cómo usar enumeraciones en Oracle?
- 24. Comprensión de las enumeraciones scala
- 25. Mongo DB $ o consulta en PHP
- 26. ¿Por qué las enumeraciones no se pueden modificar?
- 27. ¿Por qué las enumeraciones se consideran tipos compuestos?
- 28. enumeraciones Serialización con Jackson
- 29. ¿Cómo tener nombres fáciles de usar para las enumeraciones?
- 30. ¿Las enumeraciones de Java se consideran primitivas o de referencia?