![]() |
Pages (11): « 1 2 3 [4] 5 6 7 8 » ... Last » Show 150 posts per page |
.dsy:it. (http://www.dsy.it/forum/)
- Basi di dati ~ informatica triennale (http://www.dsy.it/forum/forumdisplay.php?forumid=211)
-- Social network 2010/2011 (http://www.dsy.it/forum/showthread.php?threadid=41459)
Per dare un'idea di quello che ho scritto sopra, copio qui lo schema logico di un esercitazione presente sul sito:
Proprietario (codice, telefono, indirizzo)
• PersonaFisica (codice, CF, nome, cognome)
• PersonaGiuridica(codice, PI, denominazione)
Con codice in Proprietario come chiave primaria e Codice in PersonaFisica e PersonaGiuridica come chiave primaria e chiave esterna.
Ora, se volessi fare una query che, dato un codice di un proprietario mi venga segnalato se è una persona fisica o una giuridica come potrei fare?
Non ho letto i tuoi messaggi precedenti comunque con questa query trovi i nomi dei proprietarifisici
SELECT nome
FROM Proprietario, PersonaFisica
WHERE Proprietario.codice = PersonaFisica.codice
ovviamente se tu inserissi sta roba in un db o in un progetto potresti fare una funzione che se la query precedente non torna nulla allora sul "sito" fai comparire qualche avviso o roba simile...
Originally posted by Snakethesniper
Per dare un'idea di quello che ho scritto sopra, copio qui lo schema logico di un esercitazione presente sul sito:
Proprietario (codice, telefono, indirizzo)
• PersonaFisica (codice, CF, nome, cognome)
• PersonaGiuridica(codice, PI, denominazione)
Con codice in Proprietario come chiave primaria e Codice in PersonaFisica e PersonaGiuridica come chiave primaria e chiave esterna.
Ora, se volessi fare una query che, dato un codice di un proprietario mi venga segnalato se è una persona fisica o una giuridica come potrei fare?
__________________
Portale segnalazioni marchi-negozi di abbigliamento
http://www.ovojo.com
Originally posted by number15
Non sto capendo il tuo problema.
Quell'implementazione dell'esempio è fatto ad minchiam.
Aggiungi nella tabella proprietario un campo tipo, che realizzi con un enum(persona fisica, persona giuridica, entrambi) (nomi decenti e, se esclusiva, 'entrambi' va via).
A quel punto hai l'informazione che ti serve nella tabella, senza if, join e robe strane.
Uhm forse ho detto una mezza cavolata...
In pratica, quello che vorrei realizzare è fare in modo che se viene fatta una query su un gioco vengano visualizzate tutte le informazioni relative, quindi per esempio se è un videogioco voglio che vengano visualizzate solo le informazioni relative a quella tipologia e non anche quelle delle altre. Per questo motivo volevo un campo che specificasse la tipologia in modo che poi venivano visualizzate solo gli attributi di quella determinata tipologia e non quelli delle altre... Non so se si capisce cosa intendo
Allora, da quanto ho capito tu avrai una tabella GIOCO che si specializza in 3 tabelle, una per ogni tipologia di gioco, con una gerarchia, immagino, di tipo totale esclusivo.
A quel punto, una volta che tu hai l'id, fai la join tra gioco e la tabella specializzata che ti interessa in base al tipo del gioco.
__________________
Portale segnalazioni marchi-negozi di abbigliamento
http://www.ovojo.com
Originally posted by number15
Allora, da quanto ho capito tu avrai una tabella GIOCO che si specializza in 3 tabelle, una per ogni tipologia di gioco, con una gerarchia, immagino, di tipo totale esclusivo.
A quel punto, una volta che tu hai l'id, fai la join tra gioco e la tabella specializzata che ti interessa in base al tipo del gioco.
edit: esempio del cazzo, penso a qualcosa di meglio
__________________
Portale segnalazioni marchi-negozi di abbigliamento
http://www.ovojo.com
Abbiamo questa situazione:
gioco(id_gioco, gioco, tipo, genere)
videogioco(id_gioco, console, v.m.)
gioco_di_società(id_gioco, durata, nr._giocatori_minimo)
Vuoi stampre una tabella con l'elenco dei giochi generale.
-Esegui questa query:
(select id_gioco,gioco, tipo, genere from gioco)
-crei una tabella con 3 campi: icona tipologia del gioco (basata sul valore del campo tipo), nome del gioco, genere.
-al click sul nome del gioco, vuoi mostrare le informazioni aggiuntive del gioco.
Facciamo che hai cliccato su Nba2k11:
if tipo = videogioco
select console, vm
from videogioco
where id_gioco = '$id_gioco'
-stampi i valori dei campi
Questa è proprio un'applicazione base.
Un altro esempio, per cui ti è fondamentale il campo tipo, è:
'Mostrami i nomi di tutti i videogiochi".
Ti basta fare:
select gioco
from gioco
where tipo ='videogioco'
__________________
Portale segnalazioni marchi-negozi di abbigliamento
http://www.ovojo.com
Originally posted by number15
Abbiamo questa situazione:
gioco(id_gioco, gioco, tipo, genere)
videogioco(id_gioco, console, v.m.)
gioco_di_società(id_gioco, durata, nr._giocatori_minimo)
Vuoi stampre una tabella con l'elenco dei giochi generale.
-Esegui questa query:
(select id_gioco,gioco, tipo, genere from gioco)
-crei una tabella con 3 campi: icona tipologia del gioco (basata sul valore del campo tipo), nome del gioco, genere.
-al click sul nome del gioco, vuoi mostrare le informazioni aggiuntive del gioco.
Facciamo che hai cliccato su Nba2k11:
if tipo = videogioco
select console, vm
from videogioco
where id_gioco = '$id_gioco'
-stampi i valori dei campi
Questa è proprio un'applicazione base.
Un altro esempio, per cui ti è fondamentale il campo tipo, è:
'Mostrami i nomi di tutti i videogiochi".
Ti basta fare:
select gioco
from gioco
where tipo ='videogioco'
Si, e indichi la cardinalità.
La parte delle generalizzazioni/specializzazioni mi ricordo che è fatta molto bene sulle slide della prof.
C'è sia come rappresentarle nel diagramma ER sia come passarle in relazionale.
__________________
Portale segnalazioni marchi-negozi di abbigliamento
http://www.ovojo.com
Originally posted by number15
Si, e indichi la cardinalità.
La parte delle generalizzazioni/specializzazioni mi ricordo che è fatta molto bene sulle slide della prof.
C'è sia come rappresentarle nel diagramma ER sia come passarle in relazionale.
Dunque sto iniziando ora a preparare il progetto ma non mi son chiare varie cose... Primo il discorso delle viste:
dice che il profilo con amici e giochi deve essere fatto tramite viste materializzate. Ora qui nasce il primo problema.
1) come materializzo effettivamente le viste? cioè se faccio una create view creo la vista ok ma come la materializzo?
2) anche le statistiche vanno fatte con viste materializzate e qui il problema al punto 3
3) tutto va tenuto aggiornato con i trigger quindi dovrei aggiornare le viste che però vengono fatte su più tabelle e quindi praticamente è infattibile perchè un aggiornamento è fattibile su viste fatte su una sola tabella
Chi mi chiarisce un pò sto discorso delle viste?
EDIT: tolto il PS avevo sbagliato a digitare un nome nel comando
Grazie a chi mi schiarirà un pò le idee...
Dai un'occhiata qua, dovrebbe aiutarti.
http://blog.fl3x.de/2005/10/26/mate...views-in-mysql/
__________________
Portale segnalazioni marchi-negozi di abbigliamento
http://www.ovojo.com
Una delucidazione sui giochi degli utenti.
Visto che il risultato finale che devo ottenere è un'entità "Giochi_Utente" con attributi ID_Gioco,ID_Utente, Tipo,Voto*,Recensione* (o almeno io l'ho pensata così, ovvero tenendo la superclasse e mettendo l'attributo Tipo), nello schema ER posso creare un'associazione chiamata appunto "giochi utente" con i suoi 3 attributi che collega le entità gioco e utente? In questo modo poi con il passaggio a schema logico verrà fuori la relazione/entità decisa prima no?
All times are GMT. The time now is 19:41. | Pages (11): « 1 2 3 [4] 5 6 7 8 » ... Last » Show all 151 posts from this thread on one page |
Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.