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
aproduct_category_id
- (
product
id
aproduct_id
parent_id
aparent_product_category_id
Respuestas a comentarios
-
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):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. -
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.