Pagina 1 di 1

Creare database film

Inviato: mer 29 nov 2006, 11:19
da Absolut
Vorrei creare un database per i film che posseggo. Su ogni DVD ho più film. Quello ceh vorrei fare è all'incirca questo:

ID del DVD--> per ogni dvd elencare i film contenuti--> e per ogni film specificare la lingua (Ita Eng) e sottotitoli. Solo che impostando come chiave primaria l'ID del dvd non posso aggiungere sullo stesso DVD + film ovviamente. Come si fa?!

Sto provando inizialmente con Access, poi se mi riesce provo con mysql..

vi ringrazio!

;)

Inviato: mer 29 nov 2006, 12:14
da gioco
Ti crei una tabella "film", una tabella "DVD" e una tabella "contiene" che rappresenta l'associazione molti-a-molti (un DVD contiene più film e ogni film può essere contenuto in più DVD immagino) fra DVD e film.

TABELLA FILM:
ID FILM | TITOLO | LINGUA | SOTTOTITOLI |... (le altre info che ti interessano)

TABELLA DVD:
ID DVD | NOME | ...(altre info)

TABELLA CONTIENE
ID FILM | ID DVD | ...(altre info relative all'associazione)

Per ottenere l'informazion "quali film contiene il DVD con ID x?" devi fare una selezione su contiene per ID DVD x seguita da una proiezione sulla cononna ID FILM. Se oltre agli ID vuoi anche altre info, come mi sembra logico, devi fare anche dei join fra contiene e DVD e contiene e film.

Premesso che secondo me è buona cosa che lo fai in SQL (soprattutto se non lo conosci ancora), magari su MySQL o Postgres, se però vuoi una soluzione pronta e semplice prova a vedere Tellico, dovrebbe consentirti di gestire la tua collezione in modo analogo.

Inviato: mer 29 nov 2006, 12:17
da Absolut
orttimo ti ringrazio.. provo...

Re: Creare database film

Inviato: mer 29 nov 2006, 12:22
da masalapianta
slackvitto ha scritto:Vorrei creare un database per i film che posseggo. Su ogni DVD ho più film. Quello ceh vorrei fare è all'incirca questo:

ID del DVD--> per ogni dvd elencare i film contenuti--> e per ogni film specificare la lingua (Ita Eng) e sottotitoli. Solo che impostando come chiave primaria l'ID del dvd non posso aggiungere sullo stesso DVD + film ovviamente. Come si fa?!

Sto provando inizialmente con Access, poi se mi riesce provo con mysql..

vi ringrazio!

;)
crei una tabella separata dove metti come campi un id e un campo film, poi nell'altra tabella anziche' mettere un campo film (e dover aggiungere un record per ogni film dello stesso dvd) metti un campo id_film legato al campo id della tabella film, cosi' non devi aggiungere piu' record dello stesso dvd e puoi usare come primary key univoca l'id; non ho la benche' minima idea di cosa sia e come funzioni access ma su mysql e' banale.

(io un sistema del genere, che archivia anche foto e file audio me lo son fatto in php con i dati su ldap: ho creato 3 schema ognuno con una structured object class, con i relativi attributi per audio,video,foto; i dn sono del tipo media(Video|Audio|Audio)Id=$hash,ecc.. dove $hash e' l'hash md5 del file (cosi' ho un id che e' quasi sicuramente univoco e un hash del file che puo' sempre tornar utile); negli schema ci ho ficcato anche alcuni attributi per l'inserimento di dati binari, quali le locandine dei film, le copertine dei cd e i thumbnails (inseriti in automatico da uno script perl che ho scritto per cercare tutte le foto in maniera ricorsiva da una directory di partenza e inserire su ldap nelle varie entries un attributo binario mediaPhotoPhoto con i thumbnails ottenuti tramite convert.
All'inizio stavo partendo anche io ad usare un rdbms (postgresql), ma poi visto che gia usavo openldap per kaddressbook, autenticazione di vari servizi (tra cui apache) e un software di archiviazione e consultazione di ricette culinarie (che scrissi tempo fa per la mia donna che annotava tutte le ricette su foglietti che poi irrimediabilmente perdeva), allora ho deciso di optare per ldap (che tra parentesi per utilizzi come questi che prevedono la maggior parte delle query in lettura, a patto di usare bdb come backend con cache opportunamente configurata e creare correttamente gli indici, da la polvere a mysql)

Inviato: dom 10 dic 2006, 12:31
da Meskalamdug
Io con mysql ho fatto cosi'
idvideo(indica appunto il numero del dvd,in caso di dvd contenenti due o piu' films)
titolo
anno
genere
lingua
formato(dvd,vhs,divx)

la chiave primaria e' idtitolo,e la tabella titolo a sua volta contiene
le voci anno,genere,etc che sono legate alle tabelle sopra
il risultato e' ottimo

select * from generale where titolo like '%omen%';
+----------+----------------------------------+------+---------+---------+--------+----------+
| idtitolo | titolo | anno | formato | genere | durata | lingua |
+----------+----------------------------------+------+---------+---------+--------+----------+
| 41 | Women in Fury | 1985 | Dvd | Erotico | 1:30 | Inglese |
| 177 | Phenomena | 1985 | Vhs | Orrore | 1:30 | Italiano |
| 441 | La donna della domenica | 1976 | Divx | Giallo | 1:45 | Italiano |
| 1068 | Omen III-Conflitto finale | 1981 | Divx | Orrore | 1:45 | Italiano |
| 1077 | Omen-Il presagio | 1976 | Divx | Orrore | 1:45 | Italiano |
| 1078 | Omen II-La maledizione di Damien | 1978 | Divx | Orrore | 1:40 | Italiano |
| 1079 | Omen IV-Presagio infernale | 1991 | Divx | Orrore | 1:30 | Italiano |
+----------+----------------------------------+------+---------+---------+--------+----------+

Inviato: dom 10 dic 2006, 13:44
da aschenaz
IMHO, meglio la soluzione di Masalapianta.

Se volete creare dei database, fate database relazionali. Le tabelle non dovrebbero contenere campi vuoti da riempire all'occorrenza, sarebbe uno spreco di risorse. Le tabelle vanno fatte in base ai principi dell'uno ad uno, uno a molti e molti e molti: nel primo caso (quando ad ogni categoria può corrispondere un solo tipo) si usa un'unica tabella; nel secondo (quando ad ogni categoria possono corrispondere più tipi) ce ne vogliono due (una per le categoria ed una per i tipi); nel terzo caso (quando un tipo può appartenere a diverse categorie e viceversa), ce ne vogliono tre (una per le categorie, una per i tipi ed una per le relazioni tra le due precedenti tabelle).

E poi è anche più logico: pensate solo al fatto di dover inserire la stessa categoria in migliaia di record. E' molto meglio avere una tabella a parte con le categorie a cui relazionarsi...

[EDIT] Solo dopo mi sono accorto che Gioco dava indicazioni analoghe. Chiedo venia.[/EDIT]
Ciao,
nino