Referenser i SQL
För att skapa följande tabeller enligt ER-diagrammet ovan kan följande skript skrivas:
CREATE TABLE Stop(
name TEXT PRIMARY KEY,
Location TEXT UNIQUE
);CREATE TABLE Line(
number TEXT PRIMARY KEY,
vehicle TEXT,
startPoint TEXT REFERENCES Stop(name),
endPoint TEXT REFERENCES Stop(name)
);
Fråga:
Hur kommer det sig att referenser bara skrivs i den andra tabellen (Line) och inte i den första (Stop)?
I ett försök att knyta detta till ett verkligt exempel kan man se STOP som städer. En stad finns oavsett om det går någon buss till den eller inte. LINE kan du se som busslinjer. De defineras av en start-stad och en stopp-stad (och har ett linjenummer och en buss). En busslinje utan städer ger ingen mening.
En stad kan ha flera busslinjer till/från) sig men en linje går bara mellan exakt 2 städer, dvs en start-stad och en stopp-stad.
joculator skrev:/.../LINE kan du se som busslinjer. De defineras av en start-stad och en stopp-stad/.../
Bör inte pilarna mellan Stop och Line vara vända i motsatt riktning då? Dvs
Line --- Starts ---) Stop //varje linje har precis EN stad som startdestination
och
Line --- Stops ---) Stop //varje linje har precis EN stad som slutdestination
Är det en pil? Jag trodde det var en båge, som i EER-diagram (och sedan struntade jag i det).
Vad betyder en pil i ett ER-diagram? Jag hittar ingen referens till det.
joculator skrev:Är det en pil? Jag trodde det var en båge, som i EER-diagram (och sedan struntade jag i det).
Vad betyder en pil i ett ER-diagram? Jag hittar ingen referens till det.
Jag kanske uttrycker mig lite luddigt, men det jag menar med pilar är själva linjerna mellan Stop och Line där pilspetsen är det du kallar för en båge. Jag ser det som en pil med trubbig pilspets
Här är en referensbild som förklarar vad alla delar betyder: