sql >> Base de Datos >  >> RDS >> Mysql

La mejor manera de almacenar un nombre de categoría de php en una tabla mysql

Depende,

¿Cuántas categorías tendrá, con qué frecuencia necesitará actualizarlas?

Tomé el enfoque anterior donde agregué Enum, pero también escribí un método estático en una clase y almacené los nombres válidos allí

class Item{


    public static function get_categories()
    {

        // only works in php >=5.4 otherwise use return array('Category1'...);
        return [
          'Category1' => 'Category1',
          'Category2' => 'Category2',
          'Category3' => 'Category3'
        ];
    }

}

Haciendo lo anterior, puede acceder fácilmente a la matriz mediante Item::get_categories(), que debería corresponder a los valores en el campo ENUM de la base de datos. Si necesita agregar más categorías, agréguelas a la base de datos y luego a esta función. Puede usar esto para validar la elección de los usuarios y generar las opciones de JavaScript.

Sin embargo!!!!

Menciona una siembra que llena su tabla, esto no podría actualizar fácilmente su ENUM por usted.

Usaría un ENUM, porque

1). Es fácil de configurar2). Es un poco más fácil que unir las dos tablas (pero los JOINS son geniales cuando los aprendes)3). Si usó una tabla secundaria, (como señaló) primero debe buscar el valor de esa tabla y luego insertar, o si la categoría se usó en un menú desplegable, use la identificación de categoría y su nombre para completar el menú desplegable (Yo lo haría de esta manera)

Pensamiento final

El rendimiento de ambas formas (tabla de búsqueda y ENUM) apenas notará la diferencia a menos que su sitio esté muy, muy ocupado. Todavía tendría que actualizar la tabla de categorías con cada versión en ambos sentidos, pero sería un poco más fácil UTILIZAR una instrucción INSERT en lugar de ALTER TABLE

Cualquiera que sea la forma que elija, si no le gusta, sería bastante fácil actualizar su código.

Espero que esto ayude, y buena suerte

Recuerda Keep It Simple Stupid K.I.S.S