Avatar billede krydset Nybegynder
24. juni 2004 - 22:44 Der er 11 kommentarer og
1 løsning

Lave query

Har de her tabeller


genre tabel
-------------------------
genre_id | genre |
    1      action


tabel lyd
-------------------------
lyd_id | lyd
  1    | dts
  2    | dolby   
  3    | Stereo


Tabel: undertekster
-------------------------
sub_id | subtitle
  1    |  Dansk
  2    | Engelsk
  3    | Spansk



tabel: sprog
-------------------------
sprog_id | Sprog
  2    |  DK

Har osse en fil tabel som skal indeholde alle oplysnibger den ser såen her ud

film tabel
-------------------------
id | titel  |  genre  | lyd_1 |  lyd_2  |  lyd_3  |  sub_1  |  sub_2  |  sub_3   
1    T3        1        1        2        3        1          2        3


Spm er nu hvordan min query skal se ud for at vælge det hele Korrekt?

Nogen der kan hjælpe med det ?

Mvh Krydset.


Tænkte godt det ville se underligt ud så i får lige et lint til en txtfil hvor det erlidt pænere
www.pc-dk.dk/sql.txt
Avatar billede muddi Praktikant
25. juni 2004 - 09:57 #1
Du bør nok arbejde lidt på normaliseringen af dine data, og så fjerne lyd-felterne i tabellen film. I stedet bør du lave en mange-til-mange relation mellem tabellerne film og lyd.
Det samme med undertekster!

Der er flere fordele ved det.
1) Det bliver nemmere at trække data ud, uden en masse if then i SQL'en.
2) Det bliver muligt at tilføje n lyd og n subtitle til hver film.

Jeg taler af bitter erfaring, da jeg arbejder med en database (også med film) som er opbygget forkert, og det er et forbandet arbejde at arbejde med data, der slet ikke er normaliseret.

Jeg kan godt lave et ERD (Entitets-relations-diagram) til dig, så du kan se hvordan du bør organisere dine data.
Avatar billede muddi Praktikant
25. juni 2004 - 10:13 #2
Nu ved jeg af erfaring, at en film også kan tilhøre flere genrer. Kig f.eks. på www.imdb.com og se hvor mange genre der er. Der ligger hver film i mange forskellige genrer.
Derfor bør du også overveje at lave en mange-til-mange relation her.
Avatar billede krydset Nybegynder
25. juni 2004 - 10:40 #3
Jeg kunne godt tænke mig at høre lidt nærmere om det.

Kan du prøve at lave sådan et diagram, så jeg kunne se ideen i det ?
Avatar billede muddi Praktikant
25. juni 2004 - 15:46 #4
Det jeg har lavet kan du se her.
Nu er jeg desværre nødt til at forlade min computer, men jeg er tilbage på mandag. Hvilken version af MySQL bruger du egentlig? Jeg kan nemlig give dig den SQL du skal bruge for at oprette tabellerne.
Avatar billede muddi Praktikant
25. juni 2004 - 15:46 #5
Jeg glemte at give linket ;)
http://halstania.dk/E/mov.jpg
Avatar billede muddi Praktikant
25. juni 2004 - 15:48 #6
En lille forklaring af forkortelserne bør du lige have:

NN:    Not Null
PK:    Primary Key
PFK:  Primary Foreign Key
Avatar billede krydset Nybegynder
25. juni 2004 - 16:06 #7
Jeg har 3.21 tror jeg den hedder
Avatar billede muddi Praktikant
28. juni 2004 - 08:45 #8
3.21? Hvis det er din egen server, så burde du overveje at opgradere til version 3.23 eller måske version 4.0. Hvis det er et webhotel, så skriv til dem og spørg om de ikke har tænkt sig at opgraderere.
Avatar billede krydset Nybegynder
28. juni 2004 - 10:37 #9
Okay har opgraderet til 4.0 uden problemer ;) havde ikke opdaget der var kommet en ny.

Men jeg kan ikke helt forstå hvorfor jeg skal lave

x_lookup
&
lookup
Avatar billede muddi Praktikant
28. juni 2004 - 11:47 #10
lookup tabellerne er du nødt til at have hvis du vil lave en mange-til-mange relation. Hver post i en lookup tabel indeholder et id fra hver tabel, som er relateret til hinanden. På den måde kan der være mange i hver tabel der hænger sammen med mange i den anden tabel.
Avatar billede krydset Nybegynder
02. juli 2004 - 16:24 #11
Jeg forstår det ikke rigtig, kan du udybe lidt, det kan godt være det bare er mig der er dum, hvisdet er så sig det lige :-S
Avatar billede krydset Nybegynder
21. juli 2004 - 12:01 #12
Nå lukker her så
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester