Q. Relacions recursives: categories. bikeshop.es

De wikijoan
Salta a la navegació Salta a la cerca

Introducció

Les relacions recursives en el model E-R són les que es relacionen amb elles mateixes. Per exemple:

  • ASSIGNATURA té com a requisit ASSIGNATURA
  • CATEGORIA pertany a CATEGORIA
  • CONJUGUE es casa amb CONJUGUE

Quan passem al model relacional es resol fent:

CATEGORIA (id_cat, categoria, id_parent)

és a dir, d'una categoria fem referència a la seva categoria pare. D'aquesta manera es pot aconseguir una estructura d'arbre totalment flexible i multi-nivell.

Desenvolupament

El sistema de categories i subcategories d'una pàgina web de comerç electrònic és un bon exemple.

En el cas de https://www.runnerinn.com/ veiem que només hi ha categories i subcategories (2 nivells), i sempre hi ha dos nivells. Veiem com les categories tenen un primer nivell de subcategories, i després ja està, ja trobem els articles.

Per exemple:

electrònica: accesorios, auriculares, cámaras deportivas,...

Quan cliquem sobre accesorios o auriculares ja trobem els productes

El mateix passa si cerquem per Marcas:

Adidas > Calzado Road Hombre -> productes
Asics > Zapatillas Hombre -> productes

Un exemple on trobem 3 nivells:

Aquí sí que tenim 3 nivells (encara que sembla ser que també és rígid i sembre hi ha tres nivells). Per exemple:

Carretera > Bicicletas > Bicicletas de carrera -> productes
MTB > Frenos > Pastillas de freno -> productes

La taula que proposem:

CATEGORIA (id_cat, categoria, id_parent)

té la virtud que:

  • amb una sola taula tenim la solució
  • s'adapta a una estructura flexible de molts nivells, on les branques poden tenir diferent número de nivells (concepte de profunditat de la branca).

Tasques a realitzar

Treballarem amb bikeshop.es.

1. Selecciona 5 categories

2. Dins de cada categoria, selecciona 5 subcategories (ja en tenim unes 25)

3. Dins de cada subcategoria, selecciona 5 subsubcategories (ja en tenim 125).

Al final tindràs uns 125+25+5 = 155 registres (aprox, entre 150 i 200)

4. Posa tota aquesta informació en un fitxer de text CSV, separat per punts i comes, amb l'estructura:

id_cat;categoria;id_parent

Si no té parent ho deixen en blanc, no cal posar NULL, però si vols pots posar NULL.

NOTA: aquest fitxer que has obtingut l'utilitzarem més endavant per practicar els inserts (Excel) i practicar amb SQL.

Entrega

Classroom. Entregaràs el document CSV (o txt) al Classroom.


creat per Joan Quintana Compte, octubre 2021