PDA

View Full Version : [SQL] help su creazione tabelle


australopiteci
24-09-2007, 20:41
Salve, dovrei creare due tabelle per risolvere questo problema:
preparare un catalogo comprendente:
-per ogni pittore e scultore i dati anagrafici, un breve profilo storico-artistico e l'opera da inserire nel catalogo
-per ogni opera, l'artista, la tecnica usata, l'anno di esecuzione, il titolo e la proprietà dell'opera
-le tecniche sono : acquarello,olio,xilografica,acquaforte,scultura in marmo, scultura in bronzo.



Per la prima tabella ho pensato ad una cosa del tipo:

CREATE TABLE artista (
artista_id INT (5) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR (30) not null ,
cognome VARCHAR (30) not null ,
profilo TEXT not null ,
opera VARCHAR (30) not null,
FOREIGN KEY (opera) REFERENCES opera(opera_id)

)


per la seconda invece:

CREATE TABLE opera (
opera_id INT (5) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
artista VARCHAR (30) not null ,
tecnica VARCHAR (30) not null CHECK (TECNICA IN ('acquarello','olio','xilografica','acquaforte','scultura in marmo', 'scultura in bronzo')),
titolo VARCHAR (30) not null ,
proprietà VARCHAR (30) not null ,
data INT (4) NOT NULL,
FOREIGN KEY (artista) REFERENCES artista(artista_id)
)


Che ne dite?

isAlreadyInUse
24-09-2007, 20:43
E mettici pure la tabella teccniche

australopiteci
24-09-2007, 20:54
ho messo il vincolo check al posto di quella tabella: tecnica VARCHAR (30) not null CHECK (TECNICA IN ('acquarello','olio','xilografica','acquaforte','scultura in marmo', 'scultura in bronzo'))

non è lo stesso?



inoltre stavo pensando se andrebbe egualmente bene modificare la tabella artista eliminando la riga: FOREIGN KEY (opera) REFERENCES opera(opera_id)

isAlreadyInUse
24-09-2007, 21:15
Il risultato è lo stesso...

australopiteci
24-09-2007, 23:43
ok thx


x quella modifica che ne pensi?

isAlreadyInUse
25-09-2007, 07:32
La relazione e 1-N tra tra Artisti->Opere quindi la tabella opere ha il riferimento all'artista quindi "FOREIGN KEY (opera) REFERENCES opera(opera_id)" non ci vuole...

australopiteci
25-09-2007, 13:04
ok come immaginavo, grazie mille :) x la conferma