Åtgärder

CS elev

Från Skolbok

Anta att vi vill ha upplysningar om en elev riktigt fort. Vad behövs det då för upplysningar? Eleven har naturligtvis ett ID-nummer, men mer? Personnummer? Telefonnummer? Detta är det allra viktigaste som jag ser det. Personnumret är enbart viktigt i gymnasiet för att se om en elev är 18 år eller äldre. Lägg in 19991206 t.ex. för sjätte december. Bild är inte bilden, utan en sökväg till en porträttbild.

CREATE TABLE elev ( 
ELEV_ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
PERSONNUMMER VARCHAR (8),
F_NAMN VARCHAR (50),
E_NAMN VARCHAR (50),
MOBIL VARCHAR (50),
EMAIL VARCHAR (50),
BILD VARCHAR (50),
INFORMATION TEXT,
);

Ingen adress? kanske du undrar. Nej, en elev har ingen adress, däremot bor en elev hemma hos en förälder eller annan målsman och den personen har en adress. Det finns en poäng till, en målsman kan ha flera barn på samma skola och därför är det onödigt att ange samma adress på flera olika elever. Om föräldrarna skiljer sig uppstår problemet att adresserna skiljer sig år och man får fundera över vilken adress som eleven skall kopplas till. Så hur ser databasen ut för en målsman?

CREATE TABLE maolsman ( 
MAOLSMAN_ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
F_NAMN VARCHAR (50),
E_NAMN VARCHAR (50),
GATUADRESS VARCHAR (50),
POSTNUMMER VARCHAR (5),
POSTADRESS VARCHAR (50),
HEMTELEFON VARCHAR (50),
JOBBTELEFON VARCHAR (50),
PRIVATMOBIL VARCHAR (50),
EMAIL VARCHAR (50),
INFORMATION TEXT,
);

Så hur vet man att en elev och en målsman hänger ihop? Till det används en separat datatabell:

CREATE TABLE familj ( 
FAMILJ_ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ELEV_ID INT,
MAOLSMAN_ID INT,
ELEV_ADRESS_KOPPLING INT,
);

Hur hänger detta ihop? Jo, på varje rad finns en koppling till en målsman för en elev. Det innebär att en elev kan ha ett obegränsat antal målsmän. Vad är ELEV_ADRESS_KOPPLING då? Jo, den används för att avgöra om eleven och den målsmannen delar samma adress. Är den 0 finns ingen koppling men är den 1 bor eleven hos den målsmannen.

Detta innebär att det inte finns någon koppling annat än adressen mellan två partners, men det här är det enklaste sättet jag själv känner till. Som sagt KISS, keep it simple stupid.


Problem

Det enda riktigt besvärliga i detta är när eleven skaffar ett eget boende, ovanligt i grundskolan men desto vanligare i gymnasiet, då får du skapa en separat tabell med bara elevadresser, men jag hoppar över det här eftersom det är att betrakta som ett extremfall.