Jump to content

Problem med databas


Pixiegnom
 Share

Recommended Posts

Hej!

Jag sitter här och arbetar med kursen Databashantering och har stött på lite problem.

Jag har en databas med tre tabeller (Artister, Album och Spår) och nu ska jag lägga till en fråga som ska göra så att endast låtar med betyget 5 ska visas. Problemet är att när jag skriver "=5" i rutan för villkor så får ALLA låtar 5 i betyg.

Är det någon som är erfaren med databaser och vad detta kan bero på?

Jag tänkte också passa på att fråga angående primärnycklar och relationer.

På den bifogade bilden så kan ni se att de som står i fet text har jag satt som primärnycklar.

Vilka skulle du satt som primärnycklar och hur skulle du sätta ut relationerna mellan tabellerna?

Som ni också ser på bilden så har jag just nu inga relationer, för att när jag hade det så ville ingenting listas.

Oerhört tacksam för hjälp!

Puss.

post-11524-0-12810000-1306078485.png

Redigerad av Pixiegnom
  • Gilla 1
Länk till kommentar
Dela på andra sidor

Vad skriver du för kod?

select låttitel from spår where betyg = 5;

typ?

edit: oh, du gör det helt grafiskt? Vad använder du för nått?

edit2: ang primärnycklar, i Album hade jag satt Artist+Albumtitel. En artist kan ha flera album och det kan finnas album som heter lika, men att en artist ger ut album med samma namn kommer nog inte hända. I artist så.. artist och i spår spårID ;>

Skulle ju kunna finnas flera artister med samma namn, känner man för att vara så petig kan man lägga in en ArtistID

Redigerad av GiZmo
  • Gilla 1
Länk till kommentar
Dela på andra sidor

Vad skriver du för kod?

select låttitel from spår where betyg = 5;

typ?

edit: oh, du gör det helt grafiskt? Vad använder du för nått?

edit2: ang primärnycklar, i Album hade jag satt Artist+Albumtitel. En artist kan ha flera album och det kan finnas album som heter lika, men att en artist ger ut album med samma namn kommer nog inte hända. I artist så.. artist och i spår spårID ;>

Skulle ju kunna finnas flera artister med samma namn, känner man för att vara så petig kan man lägga in en ArtistID

Använder Microsoft Access 2003. tongue_1181744_0.gif

post-11524-0-66464700-1306080893.png

Länk till kommentar
Dela på andra sidor

Jag gillar inte access, men mitt tips är att skriva frågan i SQL-läge och skriva som Gizmo sa ovan. Om du skriver att "Betyg=5" är ett villkor för attributet och alla blir fem så låter det som att du bestämmer att betyget måste vara 5, snarare än att du skapar en fråga/query.

Sedan har du "Album" i Spår-tabellen vilket jag antar att du tänkt ska fungera som Foreign Key. Där kan du omöjligt fylla i ett värde så att det går att koppla ihop album med spår.

Mitt tips:

Lägg till "AlbumID" som attribut i album som Primary Key, den kan du använda i tabellen "album_spår", typ. "Album_spår" innehåller AlbumID och SpårID som gemensamt skapar en Primary Key.

Edit:

Tabellen:

post-8282-0-60667700-1306086733.jpg

Query: (SQL)

post-8282-0-99847500-1306086733.jpg

Query: (Design)

post-8282-0-86243500-1306087290.jpg

Resultat:

post-8282-0-34367100-1306086734.jpg

Redigerad av Mathias
  • Gilla 1
Länk till kommentar
Dela på andra sidor

Skrivet (redigerad)

Jag gillar inte access, men mitt tips är att skriva frågan i SQL-läge och skriva som Gizmo sa ovan. Om du skriver att "Betyg=5" är ett villkor för attributet och alla blir fem så låter det som att du bestämmer att betyget måste vara 5, snarare än att du skapar en fråga/query.

Sedan har du "Album" i Spår-tabellen vilket jag antar att du tänkt ska fungera som Foreign Key. Där kan du omöjligt fylla i ett värde så att det går att koppla ihop album med spår.

Mitt tips:

Lägg till "AlbumID" som attribut i album som Primary Key, den kan du använda i tabellen "album_spår", typ. "Album_spår" innehåller AlbumID och SpårID som gemensamt skapar en Primary Key.

Edit:

Tabellen:

post-8282-0-60667700-1306086733.jpg

Query:

post-8282-0-99847500-1306086733.jpg

Resultat:

post-8282-0-34367100-1306086734.jpg

Tack för att du försöker hjälpa men grejen är den att det inte är jag som bestämmer vad som ska finnas i tabellerna, utan det är redan bestämt i kursen.

Edit: Även hur frågan ska se ut är redan bestämt. (Artist, Albumtitel, Låttitel, Speltid, Solo/Duo/Grupp)

Det konstiga är att jag gör precis som det står(och visas) i läroboken, men ändå blir det fel. Mailade läraren som sa att det kan ha att göra med relationerna.confused_1181149_0.gif

Försökte ladda ner Access 2003 för att själv se hur man gör, men det är fan omöjligt att hitta :P

Bara att söka efter Office 2003.wink_684833_0.gif

Redigerad av Pixiegnom
Länk till kommentar
Dela på andra sidor

Tack för att du försöker hjälpa men grejen är den att det inte är jag som bestämmer vad som ska finnas i tabellerna, utan det är redan bestämt i kursen.

Edit: Även hur frågan ska se ut är redan bestämt. (Artist, Albumtitel, Låttitel, Speltid, Solo/Duo/Grupp)

Det konstiga är att jag gör precis som det står(och visas) i läroboken, men ändå blir det fel. Mailade läraren som sa att det kan ha att göra med relationerna.confused_1181149_0.gif

Oj, först och främst, konstiga tabeller för att komma från en lärare. Nåväl.

Är din bild ovan hela din fråga? För du har ju inte med betyg, vart skriver du i så fall in villkoret? :P

Jag har tenta i Databasdesign imorgon, räknas detta som att plugga, btw? :ph34r:

Redigerad av Mathias
  • Gilla 1
Länk till kommentar
Dela på andra sidor

Oj, först och främst, konstiga tabeller för att komma från en lärare. Nåväl.

Är din bild ovan hela din fråga? För du har ju inte med betyg, vart skriver du i så fall in villkoret? :P

Jag har tenta i Databasdesign imorgon, räknas detta som att plugga, btw? :ph34r:

Jag antar att man ska lägga till den också, så jag gjorde det, men tog sen bort den igen. tongue_1181744_0.gif

Länk till kommentar
Dela på andra sidor

Den ska ju troligtvis vara med men "visa" urkryssad.

För att visa de attributen från de tabeller du valt måste du koppla samman tabellerna (vilket hade blivit lättare om tabellerna sett ut som jag skrev innan).

SQL-frågan hade sett ut:

SELECT Album.Artist, Album.Albumtitel, Spår.Låttitel, Spår.Speltid, Artister.Solo/Duo/Grupp FROM Spår, Album Artister WHERE Spår.Betyg="5" AND Spår.Album=Album.Albumtitel AND Album.Artist=Artister.Artist;

I designläget antar jag att man måste lägga till de jag nämnde ovan (de som inte finns redan) och ... ja, hur man nu gör.. men du måste koppla samman de i alla fall? Eller? För det känns ju som att den inte kopplar ihop betyget med de övriga.

  • Gilla 1
Länk till kommentar
Dela på andra sidor

Skrivet (redigerad)

Den ska ju troligtvis vara med men "visa" urkryssad.

För att visa de attributen från de tabeller du valt måste du koppla samman tabellerna (vilket hade blivit lättare om tabellerna sett ut som jag skrev innan).

SQL-frågan hade sett ut:

SELECT Album.Artist, Album.Albumtitel, Spår.Låttitel, Spår.Speltid, Artister.Solo/Duo/Grupp FROM Spår, Album Artister WHERE Spår.Betyg="5" AND Spår.Album=Album.Albumtitel AND Album.Artist=Artister.Artist;

I designläget antar jag att man måste lägga till de jag nämnde ovan (de som inte finns redan) och ... ja, hur man nu gör.. men du måste koppla samman de i alla fall? Eller? För det känns ju som att den inte kopplar ihop betyget med de övriga.

Hm, känns som det blir mer komplicerat än vad det egentligen ska vara. Läraren förväntar sig nog att jag ska göra på det sättet som är menat för uppgiften.

Men om vi går tillbaka några steg och glömmer det här med frågan och går tillbaka till relationer, då det kan vara grunden till problemet.

Jag ska ha två relationer:

En av dom ska vara 1:N (en till flera) och en ska vara 1:1.

Hur borde jag lösa det?

Edit:

Trevligt, Giz! Dock ska en relation vara 1:N. :)

Redigerad av Pixiegnom
Länk till kommentar
Dela på andra sidor

Jag ska ha två relationer:

En av dom ska vara 1:N (en till flera) och en ska vara 1:1.

Hur borde jag lösa det?

Edit:

Trevligt, Giz! Dock ska en relation vara 1:N. :)

1:1 tycker jag låter konstigt :/ En artist kan ha flera album, så där går inte 1:1. Ett album har flera låtar, så det går ju inte med 1:1 där heller

Eller tänker jag fel?

Länk till kommentar
Dela på andra sidor

Inte så jättenoga tror jag. tongue_1181744_0.gif

Men om man nu utgår från relationerna du satte ut Giz, vilken borde vara 1:N då?

Album.Albumtitel - Spår.Album och Spår.Låttitel?

Om de nu måste vara en 1:1 relation så får det vara mellan Artister.Artist och Album.Artist, dvs en artist får bara ha ett album/ett album får bara ha en artist. Det är det enda sättet jag ser man kan lösa det på, om man nu inte väljer att lägga in massa singel-albums :P

Länk till kommentar
Dela på andra sidor

Om de nu måste vara en 1:1 relation så får det vara mellan Artister.Artist och Album.Artist, dvs en artist får bara ha ett album/ett album får bara ha en artist. Det är det enda sättet jag ser man kan lösa det på, om man nu inte väljer att lägga in massa singel-albums :P

Men 1:N då? ohmy_1182776_0.gif

Länk till kommentar
Dela på andra sidor

Men nu känner jag mig dum...

Är inte 1:N att den ska gå från en till flera? :(

Nein :3

1:N går fortfarande bara mellan två.. uh.. vad heter det.. trött... T.ex. Artister.Artist och Album.Artist. Fält? Ajja. Grejjen är att den säger att det får finnas ett värde i en tabell som får matcha flera i en annan. t.ex., en artist kan ha många albums. Är det 1:1 så säger relationen att en artist får bara ha ett album.

Check this out

Länk till kommentar
Dela på andra sidor

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gäst
Skriv inlägg...

×   Innehåll kopierat inklusive formatering.   Ta bort formatering

  Only 75 emoji are allowed.

×   Din länk har expanderats till ett media-block.   Visa länk istället

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...