Q. Relacions recursives: categories. bikeshop.es

De wikijoan
La revisió el 16:06, 27 oct 2021 per Joan (discussió | contribucions) (→‎Desenvolupament)
(dif) ← Versió més antiga | Versió actual (dif) | Versió més nova → (dif)
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.

Aquest és el sistema que utilitza el Wordpress per categoritzar els articles i post: un sistema flexible i compacte on no queda fixada el número de fills que té cada branca.

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 i 4 nivells:

Aquí sí que tenim 3 nivells. Per exemple:

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

Els 4 nivells els trobem dins de BMX:

BMX > BMX FREESTYLE > Ruedas y cubiertas > Cámaras de aire -> 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