webForumDet fria alternativet

Modelleringshjälp

5 svar · 462 visningar · startad av Elvis

ElvisMedlem sedan maj 200548 inlägg
#1

Hej!

Har en tabell med järnvägsstationer
STATIONER(station {PK})
I tabellen finns data i form av namn på stationer som exempelvis Boden, Borlänge, Malmö, Sala, Stockholm osv.

Det jag nu vill ha fram är en lista som innehåller uppgifter om tågturer, startstation, slutstation, starttid och ankomsstid.

Tabellen skulle kunna se ut som så här:
TÅGTURER(Turnr {PK}, Startstation, Slutstation, Starttid, Ankomsttid)

Men hur får jag den primära nyckeln 'station' i tabellen stationer, att bli främmande nyckel i tabellen tågturer på två olika platser i tabellen. (Startstaion och slutstation).

Det behövs minst ytterliggare en tabell, men jag vet inte riktigt hur jag ska modellera detta, för att få det så bra som möjligt. Det blir ju en många till många relation, då en station kan finnas i flera turer, och då en tur kan ha flera stationer.

Någon som kan ge mig ett tips på upplägg. Vill inte ha någon modellering rakt av, då jag vill lära mig hur jag ska göra. Men jag tar tacksam emot föslag och ideér.

lillebrorMedlem sedan apr. 20041 597 inlägg
#2

Så här brukar jag göra i min tabell för medlemmars interna mailfunktion...

CREATE TABLE tblTågturer(
turID INT NOT NULL AUTO_INCREMENT,
startstationID INT NOT NULL,
slutstationID INT NOT NULL,
PRIMARY KEY (turID),
INDEX station_index_1 (startstationID),
INDEX station_index_2 (slutstationID),
FOREIGN KEY (startstationID) REFERENCES station (stationID),
FOREIGN KEY (slutstationID) REFERENCES station (stationID)) TYPE=INNODB;

Något i stil med det jag skrivit ovan skulle jag utgå ifrån i ditt fall. Där ser du hur man med en främmandenyckel kan ha flera fält i en tabell som pekar tillbaka mot ett och samma huvudfält i en annan tabell. Lycka till!

ElvisMedlem sedan maj 200548 inlägg
#3

Hej! Tack för svaret!

Jag provade det upplägget innan jag skrev frågan i forumet. Men kör man det tankesättet och skapar tabellerna i access, så blir det märkligt när man sedan kikar i relationerna.
Då finns det en tabell för tågkurser, och sedan två tabeller för tågstationer. "Tågstation" och "Tågstation_1". En tabell för varje koppling mot tabellen tågstationer. Detta trots att det i databasen enbart finns en tabell för tågstationer.

Eftersom mitt upplägg av tabellerna från början var just så som du beskrev, så kan man utgå från att det är rätt, så som du gjort. Men varför blir det då en extra-tabell när man kikar i relationerna mellan tabellerna i Access?

Trodde att jag gjort något fel när det blev så, men det kanske bara är en otydlig visning i Access som gör att jag blir förvirrad?

lillebrorMedlem sedan apr. 20041 597 inlägg
#4

Elvis skrev:

Eftersom mitt upplägg av tabellerna från början var just så som du beskrev, så kan man utgå från att det är rätt, så som du gjort.

Det sätt som jag beskrev fungerar bra när man kör php och MySQL. Hur det fungerar för Access kan jag inte svara på helt säkert. Det borde inte vara några problem. Det som ibland kan ställa till huvudbry är att Access i det här fallet kan använda en något annorlunda SQL-dialekt men det verkar inte vara problemet i ditt fall.

Elvis skrev:

Men varför blir det då en extra-tabell när man kikar i relationerna mellan tabellerna i Access?

Jag tror att det är en presentationsmässig sak.

Elvis skrev:

Trodde att jag gjort något fel när det blev så, men det kanske bara är en otydlig visning i Access som gör att jag blir förvirrad?

Det är vad jag tror.

Prova att kör en SQL-fråga så märker du kanske om det fungerar som det borde göra.

Du har inte funderat på att köra MySQL och PHP istället. Det fungerar väldigt bra måste jag säga! :)

ElvisMedlem sedan maj 200548 inlägg
#5

Tack för hjäpen Lillebror!

Det ser ut att fungera ok. Det var nog bara Access visning av tabellerna som skapade förvirring. Troligen ska det nog vara som så att man i detta fall ser tre tabeller, fast det bara finns två, hur märkligt det än låter.

lillebrorMedlem sedan apr. 20041 597 inlägg
#6

Ingen orsak. Hjälper gärna till när jag kan bidra med något :)

Personligen så gillar jag inte Access :) Det var också den databashanteraren vi utgick ifrån när jag läste en databaskurs på högskolan för ett tag sedan...

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)