Permalänk
Medlem

Databashantering Access Hjälp?

Läser en databas kurs på hermods och har fasnat på en uppgift någon som kan ge en hjälpande hand?

Uppgiften lyder:
"Lägg in två lämpliga relationer mellan tabellerna Artist och Album och mellan Album och Spår. En av relationerna ska vara ett 1:N relation, dock inte den andra."

Att sätta relationer är inga problem men att det bara får vara en 1:N relation går inte ihop.
Här är mina relationer som nu är 2 st 1:N

Har stirrat på detta några timmar nu börjar bli allmänt snurrig.
Är det jag som är dum i huvudet eller är inte det logiskt att det är 2st 1:N relationer?

Permalänk
Medlem

Nu har jag inte funderat så mycket men om du byter plats på album och spår dvs:

Artist - Spår - Album

artist till Spår 1:N relation
Spår till Album 1:1 relation eftersom 1 spår kan bara tillhöra 1 Album

Edit: Glöm det, det blir fortfarande N:1 mellan spår och Album så jag tänkte fel.

Visa signatur

Case: Corsair 650D | PSU: Asus Thor 1200W | RAM: Corsair 2*16GB Dominator Platinum RGB 5600MHz | Cooling: Corsair H100i Elite LCD | CPU: i7-12700K | MB: Asus ROG Strix Z690-F Gaming WIFI | GPU: MSI 4080 SUPRIM X | Monitor: Acer XB270HU

Permalänk
Medlem

Nån annan?

Permalänk

Lägg till artistID?

Och dra relationen mellan det och Artist i Album tabellen?

Permalänk
Medlem

Ett spår kan väll tillhöra flera album ? dvs. "Best of" album?
sen finns det väll album som har mer än en artist också
frågan för mig är vilken av dom två alternativen din lärare vill ha som N-N >.<

antar att du vet hur man gör N-N relationer

Visa signatur

orka

Permalänk

Ovanstående är inne på rätt spår.. Dock är det väl snarare så att album kan ha flera olika artister? Ett spår är dock direkt knytet till en viss skiva, iaf enligt den definitionen som jag har på ordet spår och denna definition passar bra in med de övriga egenskaperna för tabellen spår.

Så skapa en M:N relation som ovanstående sa.
*edit*
Hade tabellen spår hetat låt, så hade jag tyckt som ovanstående. Sedan vad som är rätt handlar enbart om hur man definierar saker, det gäller dock att definiera det som för de flesta känns rätt, vilket kan vara svårt att veta.

Visa signatur

[Core i7-3930K med 32GB ram, 2*256GB SSD] & [Core i7 3770K med 16 GB RAM, 256GB SSD] som tillsammans har ett [HD 5850 1GB] och 3st 24".

Permalänk
Medlem
Skrivet av bud_bundy:

Ett spår är dock direkt knytet till en viss skiva, iaf enligt den definitionen som jag har på ordet spår och denna definition passar bra in med de övriga egenskaperna för tabellen spår.

Haha klart, tänkte på en låt men nu när jag läser det du skrev står det juh spår! sjuk miss man gör!

Visa signatur

orka

Permalänk
Medlem

Tack för svaren! Dock tror jag ingen av dom är rätt då föregående uppgift var:
"Ta fram 10 st CD-skivor och mata in informationen i tabellerna som du skapade i fråga 2. Betyg får du själv välja, men se till att du använder alla betygsstegen. Använd endast album med en artist. Ta ej med soundtrack eller samlingsalbum."

Permalänk

Borde inte det gå och göra en sådan här lösning på ditt problem?

http://office.microsoft.com/sv-se/access-help/1-1-relation-RZ...

Om du lägger Artist och Artist under en 1:1 relation så borde det gå och köra den andra länkningen med en 1:n??

Permalänk
Medlem

Om jag gör en 1:1 relation så måste båda vara primärnycklar. Det betyder att jag bara kan ha ett album från varje artist vilket är fel då det nämns "om artisten har flera album bla bla" i en senare uppgift.

Permalänk
Skrivet av xocz:

Tack för svaren! Dock tror jag ingen av dom är rätt då föregående uppgift var:
"Ta fram 10 st CD-skivor och mata in informationen i tabellerna som du skapade i fråga 2. Betyg får du själv välja, men se till att du använder alla betygsstegen. Använd endast album med en artist. Ta ej med soundtrack eller samlingsalbum."

Denna beskrivning säger dock enbart vilken information som ska inmatas och inte hur databasschemat ska konstrueras.

Och 1:1 relation så kan man slå ihop tabellerna och i detta fall så blir det bara förvirrande för att det är logisk att det ska vara en M:N relation och folk kommer försöka mata in data på detta sätt, om inte gränssnittet på något sätt tydliggör detta.

Visa signatur

[Core i7-3930K med 32GB ram, 2*256GB SSD] & [Core i7 3770K med 16 GB RAM, 256GB SSD] som tillsammans har ett [HD 5850 1GB] och 3st 24".

Permalänk
Medlem

Gjorde en N:N relation. Får se vad läraren säger.
Har fasnat på en annan grej dock:

"Skapa en fråga som tar fram varje artists yngsta och äldsta album. (Om man bara har ett album från en artist blir äldsta och yngsta albumet samma). Sortera på Artist stigande. Dessutom ska det stå ”Äldsta album” resp. ”Yngsta album” som rubriker när du kör frågan."

Har läst om kapitelet ett antal ggr men hitta inget som förklarar hur man gör. Förstår att jag ska använda max/min på utgivningsår men hur får jag album att fatta det sen?

Permalänk
Medlem

skulle tro att du använder ORDER BY

http://www.1keydata.com/sql/sqlorderby.html

Visa signatur

orka

Permalänk

Du kan göra två frågor och sedan slå ihop dem med en union.

Visa signatur

[Core i7-3930K med 32GB ram, 2*256GB SSD] & [Core i7 3770K med 16 GB RAM, 256GB SSD] som tillsammans har ett [HD 5850 1GB] och 3st 24".

Permalänk
Medlem

Kan du förklara det lite bättre?

Permalänk
Medlem

Man använder sig av JOIN för att slå ihop olika tabeller till en

denna artikel förklarar bra olika typer av JOIN och vissar exempel
http://msdn.microsoft.com/en-us/library/bb243855%28v=office.1...

Står också hur man använder UNION där.

Visa signatur

orka

Permalänk
Medlem

Måste finnas något enklare sätt att göra det på? Står väldigt lite om sql kod i boken och inget om union.

Permalänk
Medlem

Är det Access 2003 du arbetar i? Och vart fick du tag på på det i sådana fall?

Jag har valt databashantering hos Hermods, och allt jobb ska göras i Access 2003 (är inte det utdaterat?).

Permalänk
Medlem

Japp access 2003. Hitta det på den där trevliga sidan med massa annat "gratis" grejs. Det ingår i office 2003 så ladda ner det.

Permalänk
Skrivet av Honke:

Är det Access 2003 du arbetar i? Och vart fick du tag på på det i sådana fall?

Jag har valt databashantering hos Hermods, och allt jobb ska göras i Access 2003 (är inte det utdaterat?).

Access 2003 är förlegat, det största problemet är att göra användarvänliga gränssnitt, vilket är orsaken till varför man inte brukar göra hela applikationer i access. (vilket det annars inte är några som helst problem att göra med visual basic application.)
Skillnaden mellan access 2010 och 2003 är alltså främst det grafiska, även om saker som memo field(långa textfält) och tempvars (VBA) är väldigt bra.

Men för att lära sig grunderna, så är det inte stor skillnad på access och det tar inte lång tid att lära sig nya versioner. Men ändå är det lite dåligt att man i kursen använder en sådan gammal version. (Och snart kommer access 2012)

Angående fixa access 2003 så är det begagnad marknaden som gäller, det går dock göra allt i nyare access och spara för bakåtkompatibilitet. Bara det att man inte tydligt märker att man använder funktioner enbart för nyare access och man bör kontrollera resultatet efteråt i access 2003. Det som kan strula är layouten, Macro och visual basic applikationskod. Där du på kursen troligen bara kommer få arbeta med layout och Macro.

Macrofunktionen är helt ny i access 2010/2007 emot access 2003, så det är lite tråkigt att ni kommer få lära er det gamla sättet att skapa macro. Detta moment att skapa makron brukar även vara det svåraste på nybörjarkurser i Access och då är det ännu mer tragiskt att man nu skapar dem på ett annat sätt.

Visa signatur

[Core i7-3930K med 32GB ram, 2*256GB SSD] & [Core i7 3770K med 16 GB RAM, 256GB SSD] som tillsammans har ett [HD 5850 1GB] och 3st 24".

Permalänk
Medlem

Frågorna liknar ngra jag har haft i en kurs i, vad heter boken?

EDIT: Kollade up kurs-koden: DTR1211, är samma som jag går i nu :P, Det är nog inte samma uppgift...

Permalänk
Medlem

Fick fel på N:N relationen.

Permalänk
Skrivet av xocz:

Fick fel på N:N relationen.

Du gjorde alltså en såhär (se nedanför) och läraren sa att det ej var en lämplig lösning, sa han/hon varför antagandet att ett album kan innehålla flera artister är fel?

Annars så kan jag ej se någon lämplig lösning.

Visst man kan göra typ 1..20 relation från album till låtar, men varför begränsa sig i databasschemat till bara ren onyttja med detta? Jag tror heller inte Access schema stöder denna typ av relation
1:1 relation, så slå ihop tabellerna istället i just detta fall.

Visa signatur

[Core i7-3930K med 32GB ram, 2*256GB SSD] & [Core i7 3770K med 16 GB RAM, 256GB SSD] som tillsammans har ett [HD 5850 1GB] och 3st 24".

Permalänk
Medlem

Jupp precis så fast album o artist som en primärnyckel i album_artist. Det enda han sa vara "Det ska bara finnas 3 tabeller i uppgiften fixa till nästa uppdrag" så jag mailade han och fråga fall han menar att det i så fall ska vara en 1:1 relation istället för den N:N jag gjorde och var i helvete den ska vara. Inte fått nått svar än dock.

edit: Skulle man kunna göra N:N relationen direkt med bara album tabellen? om man ändrar primärnyckeln där? Fast då har jag ju bara en N:N och ingen 1:N dessutom kan han ju inte ge mig mvg på första uppgiften (där jag skapade databasen) om primärnyckeln inte var rätt från början?
Hatar ologiska uppgifter!

Permalänk

Tjo!

den enda lösningen som verkar logisk är att lägga en N:N relation mellan artist och album, dock måste några nya kolumner in i det hela för att få saker och ting mer unikt..

Frågeställningar:
Kan en artist vara med på flera album? Ja
Kan ett spår vara med på flera album? Nej, spår verkar här vara definierat som unikt spår på specifikt album som nämdes ovan om jag inte har tappat bort mig helt.

Så du kommer få en struktur som blir enligt följande:
tblArtist.ArtistID (primär) N:N tblAlbum.ArtistID
tblAlbum.AlbumID (primär) 1:N tblSpar.AlbumID

primärnyckel i tblSpar blir SparID som ovan.

Nyckeln i detta problem är att använda album som bas och inte artist..

Hoppas det hjälpte din tankegång..

Permalänk
Medlem

Det där är väll exakt som jag gjorde (och fick fel för) fast med andra kolummer bara?
För att göra en N:N måste jag väll lägga till en ny tabell?