Q. Relacions recursives: categories. bikeshop.es
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