- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- [mysql] Consiglio su progettazione database
-
[mysql] Consiglio su progettazione database
E' giunta l'ora di provare a scrivere il mio primo sito dinamico . Ho deciso per un sito di recensioni musicali, con profili degli artisti e degli album. Nella progettazione del db ho avuto da subito qualche dubbio. Mi spiego. Ho una tabella "generi" con associazione N-N con 3 tabelle: artisti, album, utenti (per i generi preferiti).
Come è meglio agire in questi casi?
- Creo 3 tabelle separate: generi_artisti, generi_album, generi_utenti
- Creo un'unica tabella con un solo id per le tre tabelle e un campo che memorizza la tabella a cui ci si riferisce (idgenere, idaltro, tabella); dove idaltro può riferirsi alla chiave primaria di una delle tre tabelle
- Creo un'unica tabella con 3 chiavi esterne(oltre a quella ovvia con riferimento alla tabella generi) per le 3 tabelle (idgenere, idartista, idalbum, idutente);
Stessa dubbio si ripresenta per i commenti e i voti! Un commento può essere riferito a un artista (nella pagina delle relativo profilo di quest'ultimo), a un utente o a una recensione. Il voto può essere dato a un album o alla recensione.
Vi sarei grato se mi chiariste le idee, grazie mille
-
Ciao
benvenuto nel forum
Io ragionerei diversamente, pensando alle "cose" da catalogare.
Creerei quindi tabelle relative a artisti, album, utenti e generi.
Poi in ogni tabella metterei le relazioni con i generi.
-
@claudioweb said:
Ovvio che artisti, album, utenti e generi sono entità(e tabelle) separate. Il mio dubbio era sul come spezzare le assoziazioni N-N che legano queste entità. Sul database ci sono già le tabelle generi_artisti, generi_album e generi_preferiti (per gli utenti) che legano la tabella generi con le altre.
Quindi mi dai conferma che questa sia la soluzione migliore?