Creare database film

Area di discussione libera.

Moderatore: Staff

Regole del forum
1) Rispettare le idee altrui.
2) Evitare le offese dirette.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
Absolut
Linux 4.x
Linux 4.x
Messaggi: 1465
Iscritto il: gio 10 feb 2005, 0:00
Slackware: current
Località: Roma

Creare database film

Messaggio 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!

;)

Avatar utente
gioco
Packager
Packager
Messaggi: 900
Iscritto il: dom 19 giu 2005, 0:00
Slackware: last stable
Località: in the court of the Wesnoth king
Contatta:

Messaggio 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.

Avatar utente
Absolut
Linux 4.x
Linux 4.x
Messaggi: 1465
Iscritto il: gio 10 feb 2005, 0:00
Slackware: current
Località: Roma

Messaggio da Absolut »

orttimo ti ringrazio.. provo...

Avatar utente
masalapianta
Iper Master
Iper Master
Messaggi: 2775
Iscritto il: lun 25 lug 2005, 0:00
Nome Cognome: famoso porco
Kernel: uname -r
Desktop: awesome
Distribuzione: Debian
Località: Roma
Contatta:

Re: Creare database film

Messaggio 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)

Meskalamdug
Iper Master
Iper Master
Messaggi: 3965
Iscritto il: ven 14 mag 2004, 0:00

Messaggio 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 |
+----------+----------------------------------+------+---------+---------+--------+----------+

Avatar utente
aschenaz
Staff
Staff
Messaggi: 4623
Iscritto il: mer 28 lug 2004, 0:00
Nome Cognome: Nino
Slackware: current
Kernel: 5.4.x
Desktop: KDE
Località: Reggio Calabria
Contatta:

Messaggio 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

Rispondi