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

Modelado de bases de datos:¿Cómo categorizar productos como Amazon?

Por supuesto que escalará. Eso funcionará bien, es una estructura de uso común.

Incluya un level_no . Eso ayudará en el código, pero lo que es más importante, es necesario para excluir los duplicados.

Si desea una estructura realmente ajustada, necesita algo como el concepto de inodos de Unix.

Es posible que tenga dificultades para comprender el código necesario para producir la jerarquía, por ejemplo, de un product , pero ese es un tema aparte.

Y por favor cambia

  • (product_category )) id a product_category_id
  • (product id a product_id
  • parent_id a parent_product_category_id

Respuestas a comentarios

  1. level_no . Eche un vistazo a este modelo de datos, es para una estructura de árbol de directorios (por ejemplo, la ventana del Explorador de FlieManager):

    Modelo de datos de directorio

    Vea si puede entenderlo, ese es el concepto de inodo de Unix. Los nombres de archivo deben ser únicos dentro del nodo, de ahí el segundo índice. En realidad, está completo, pero algunos desarrolladores en estos días tendrán un ataque de silbido al escribir el código requerido para navegar por la jerarquía, los niveles. Esos desarrolladores necesitan un level_no para identificar con qué nivel en la jerarquía están tratando.

  2. Cambios recomendados. Sí, se llama buenas convenciones de nomenclatura. Soy rígido al respecto y lo publico, por lo que es un estándar de nombres. Hay razones para ello, que le resultarán evidentes cuando escriba algo de SQL con 3 o 4 niveles de combinaciones; especialmente cuando vas al mismo padre de dos maneras diferentes. Si busca SO, encontrará muchas preguntas para esto; siempre la misma respuesta. También se resaltará en el próximo modelo que escribo para ti.