Hola,
Estoy pensando en desarrollar el CMS para una tienda desde cero, había pensado en tener una tabla productos, en los que tuviesen la información básica (Nombre, Descripción y Precio). Luego había pensado que a través de plugins se pudiese extender esa "tienda base" a otros tipos de tienda, por ejemplo añadir campos para las fotos, o si es de ropa, le metes el plugin de tallas y te permitiría poner a cada producto una serie de tallas. Podría pasar lo mismo con colores por ejemplo u otro tipo de opciones.
Había pensado en tener una tablar productos base (tbl_products), luego otra tabla para los nuevos campos (tbl_attributes_extra con campos para id_campo y valor_campo) y finalmente una que relacionase el atributo extra con el producto (tbl_meta_prod_attr) (Habría otra que indicase que si el producto es tal tipo, hay que buscar los atributos tales y cuales en tbl_meta_prod_attr con campos id_producto id_attributo). Mi problema es al intentar pensar en una tienda con un par de centenares de productos, que se convierten facilmente en miles de campos y la consulta podría ser algo pesada. Además, no sé de qué tipo guardar la información, porque un atributo puede ser un texto largo (una review de un usuario por ejemplo) o un número (la altura del producto por ejemplo).
Eso es lo que quiero optimizar para usar los menos recursos posibles. En principio había pensado en crear la tabla tbl_attributes con un campo para cada tipo y que se guardase en el campo que ma se adecuara al atributo en sí (eso lo diría el plugin), pero entonces tendría una tabla enorme, con la mayoría de campos vacios.... ¿Alguna idea a mi problema?
PS: No, no voy a usar un CMS prefabricado, la idea es crearlo desde cero.