Avatar billede showsource Seniormester
27. februar 2010 - 12:23 Der er 4 kommentarer og
2 løsninger

Råd til tabelopbygning for en vagtplan

Hej
Jeg kører taxa i Kbh. og der hvor jeg skifter, er der ca. 50 biler.
Vagtplanen for hver dag bliver lavet på et stykke papir, med blyant og viskelæder.

Jeg har derfor sat mig for at lave noget db, dels for udfordringen, men også fordi de måske vil bruge det.

Jeg er så kommet i tvivl om hvad den bedste tabel opbygning vil være.

Der er x antal vognmænd, som hver især har x antal biler.
Der er x antal chauffører
Og der er dagvagt/natvagt

Foreløbig har jeg:
En tabel  med vognmænd: id og navn
En tabel med chauffører: id, navn
En tabel med biler: id, bilnr, vognmandsid

Jeg har så valgt at ha' en tabel for vagtdatoer:
id, dato

Selve vagt tabellen har så:
id, datoid, chafførid, bilid, og vatgtype (dag/nat)

Men som vagttabel overvejer jeg så at ha:
id, dato, vagttype og derefter x antal felter for hver bil, f.eks.  bil_0072, bil_0210 o.s.v.

Et eller andet sted vil sidstnævnte tabel jo være nemmere at bruge for visning/redigering af vagter.

Men jeg er i tvivl, lige p.t. hvad vil egentlig være bedst ?

Derudover kunne det jo gøres mere simpelt:

En tabel:
id, dato date(0000:000:00), chauffør varchar(navn), bilnr (int), vagttype enum(dag/nat)

Nogen gode råd ?
Avatar billede Slettet bruger
27. februar 2010 - 13:46 #1
Jeg ville gå efter noget i stil med den sidste tabelstruktur du beskriver, men ændre et par småting så den kommer til at så således ud:
id int, dato date(yyyy-mm-dd), chauffør-id int, bil-id int, vagttype enum(dag/nat)

For hver bil der skal være på vagt på den pågældne dato og vagttype skal der så indsættes én record.
Det vil give væsentlig flere rækker i tabellen end hvis man bruger den tabelstruktur som du skriver du overvejer, men du er fri for at have en tabel med X antal kolonner til biler (hvis jeg altså har forstået hvad du mener med den tabelstruktur).
Avatar billede arne_v Ekspert
28. februar 2010 - 01:56 #2
Jeg ville nok vælge:

vognmand
--------
id - INT, PK
navn - VARCHAR(50)

bil
---
id - INT, PK
nr - INT
ejer - INT, FK->vognmand.id

chauffoer
---------
id - INT, PK
navn - VARCHAR(50)
ansathos - INT, FK->vognmand.id

plan
----
dato - DATE, delt PK
nattevagt - BOOLEAN, delt PK
bil - INT, delt PK, FK->bil.id
chauffoer - INT, FK->chauffoer.id
Avatar billede Slettet bruger
28. februar 2010 - 10:09 #3
Hvis nogen skulle være i tvivl var det noget i stil med det Arve_V har angivet som jeg prøvede på at formulerer mig til i min tidligere post :-)
Avatar billede showsource Seniormester
28. februar 2010 - 13:56 #4
I må gerne smide et svar begge to.

Selve vagtplanen kommer aldrig til at indeholde mere end fra igår + 3 dage frem.
Derfor overvejede jeg lidt ideen med feltnavn == bilnr for at skulle  lave så lidt kode som muligt.

Men der er jo ingen grund til at stå af i roskilde. hvis man egentlig skal til københavn.
Avatar billede Slettet bruger
28. februar 2010 - 14:48 #5
Jamen var da så lidt, du får et svar fra mig her.
Avatar billede arne_v Ekspert
28. februar 2010 - 15:49 #6
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester