Tabella abilità dedicata: controindicazioni? postato il 09/08/2010 14:22:43 nel forum programmazione, gdrcd, open source, hosting e modificato da kheper il 09/08/2010 15:16:16
Ricominciando a smanettare su un progetto di programmazione fatto a mano da me non-programmatrice, mi inizio a fare domande apparentemente idiote sulla progettazione della struttura del database.
Mettiamo che io voglia creare della abilità di scheda che hanno determinati effetti su diverse funzioni e variabili del portale/gioco.
Avevo pensato di creare un DB apposito per le abilità, contenente per ognuna i vari parametri che va a modificare/abilitare/toccare e poi una tabella di assegnazione dei valori legando l'id dell'abilità all'id del personaggio.
A senso logico mi tornerebbe "bene" per gestire quello che devo gestire con le abilità e soprattutto per integrare le varie abilità (che sono funzioni) pian piano senza dover per forza toccare la tabella della scheda personaggio ogni volta.
La domanda è per chi è vagamente più esperto di me: che controindicazioni ci sarebbero ad adottare una soluzione simile? Non so se appesantirebbe qualcosa, ad esempio, visto che andrei a richiamare dati da tre tabelle invece che da una...
Pagine → 1
09/08/2010 14:44:11
Quello a cui stai pensando è il classico esempio di relazione molti-a-molti. Hai due entità, il personaggio e la skill, ognuna con la propria tabella e ovviamente con la propria chiave. Pensi: quante skill può avere un personaggio? Zero, una, più di una? La risposta in questo caso è: più di una. Analogo discorso all'inverso. Una skill a quanti personaggi può appartenere? Zero, uno, più di uno? Anche in questo caso la risposta è: più di uno. Ergo hai una relazione che collega due entità in maniera molti-a-molti. L'unico modo per mappare una relazione molti a molti in sql è quello di riempire una tabella intermedia contenente le chiavi di entrambe le tabelle; ogni riga di questa tabella sarà formata da elementi diversi, e sarà effettivamente la tabella che mapperà il rapporto skill/personaggio.
09/08/2010 14:57:05
Sì, Fab... parlo di tabelle (mea culpa, non imparerò mai che le tabelle son tabelle ed i database son database... per me sono tutti database). Non so come funziona Extreme, sto cominciando adesso a smanettare con gli OS per vedere che soluzioni adottano, ma sto già "montandomi in testa" la struttura di ciò che vorrei raggiungere/avere.
Esammente vino_veritas: è quello che voglio fare (ma che in quanto niubba non avrei saputo spiegare meglio).
Praticamente quello che vorrei (esemplificandolo al massimo) è:
TAB1
ID
Nome
Cognome
Indirizzo
TAB2
ID
Abilita
Prerequisito
Massimale
Minimale
TAB3
ID
ID_Tab1
ID_Tab2
La domanda è: che problemi può causare, se può causarne? Non so se farebbe lavorare troppo il db...
09/08/2010 15:06:23
puoi tagliare la tab3 e mettere in tab2 un refTab1_ID.
Non ci sono controindicazioni per una join tra due tabelle così piccole.
09/08/2010 15:20:06
Mah,come ho fatto io.
Tab Skills_Generali
ID
NomeSkill
DescrizoneSkill
IDRazza (che sarà un requisito solo x chi ha quell'id di razza)
IDClasse (analogo di sopra)
etc etc etc
Tab Skills_Personaggi
ID
IDSkillPadre ( che sarebbe l'id della skill che si trova in Skills_Generali)
NomePossessore ( nome del personaggio che l'ha imparata)
Ovviamente + la fai elaborata e + diventano belle..
Io ci ho inserito forza,difesa...etc etc,livello skill...imparabile x ki ha un determinato lvl e così via^_^..insomma un po di ingegno e riesce tutto :-D
09/08/2010 15:26:54
Puoi tagliar via il campo ID dalla tabella 3; quella tabella, così com'è, sarà necessariamente formata da tuple l'una diversa dall'altra.
09/08/2010 23:30:07
Gracias a todos.
(Veritas: l'ID nella TAB3 pensavo di lasciarla per poi magari usarla nei log... di chi ha messo cosa a chi... ma sto concettualizzando adesso il tutto, quindi magari quando ho finito scopro che era inutile.)
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
Crystal Tokyo: Ingresso nella Via Magica
alexandros si è accreditato come gestore di Shinobi no Saisei - Naruto x Boruto GDR
AlterEgo → Scopri AlterEgo GdR: un incredibile universo narrativo in stile medievale fantasy che cresce, muta e vive giorno dopo giorno grazie ai suoi giocatori!
Il gestore di Naruto x Boruto GDR - New Rebirth ha risposto alla recensione di jimcho
Il gestore di Naruto x Boruto GDR - New Rebirth ha risposto alla recensione di theduelist92
War Thunder: Chieftain 900: Capo della Royal Ordnance
Il portale raggiunge i 17.200 giochi catalogati! Grazie a tutti!
Crash Bandicoot Zone → Caos, libertà e risate: nel GDR ambientato nell’universo di Crash Bandicoot, ogni storia è possibile… e nulla è troppo folle!
Hero Wars: Anomalia dei Pets! 🐾
New Orleans: [On Game] Casting per i Cantanti!
I dati del generatore di rank sono stati aggiornati!
Le Cronache di Raja Dunia: Ampliamento Enciclopedia Creature
Enlisted → Guida la tua squadra di soldati in combattimenti su larga scala, con fanteria, veicoli corazzati e aerei della IIa Guerra Mondiale!
Enlisted: Combattimento alla pari: Regno Unito contro Italia
World of Tanks: Manovre militari torna a novembre!
lyingcreature ha recensito Salvation GDR
Portus: Harry Potter Gioco di Ruolo: La RAS è arrivata a Hogwarts. E ora?
World of Tanks → Lanciati in epiche battaglie spalla a spalla con altri giocatori. Conquista la supremazia nel mondo dei Carri Armati!
Guida Nuovi Giocatori - Guida per i nuovi giocatori: come iniziare nel complicato mondo del GdR Online!
Forgotten Kingdom - Intervista al gestore di Forgotten Kingdom, play by chat fantasy mitologico!
A Legacy of Magic - Intervista a Vincenzo, gestore del GdR fantasy Legacy of Magic
Papaboys e GdR - Di papaboys, giochi di ruolo e disinformazione..
Amazon Luna - Amazon Luna, scopriamo assieme il nuovo servizio di cloud gaming!
Messaggistica - Le App di messaggistica istantanea più utilizzate in Italia
Sfrutta Gdr-online.com! - Consigli per sfruttare al meglio i mezzi messi a disposizione da GDR-online.com!