Avatar billede brianmortensen Nybegynder
19. oktober 2004 - 00:34 Der er 6 kommentarer

Medie udlånsdatabase

Jeg skal lave en database hvor jeg styrer udlån af forskellige medier som CD, DVD osv. Jeg har et brugernummer og et medienummer, og mangler nu inspiration til at få en database op og stå, hvor den registrerer udlån og returnering. Data kommer til at køre via stregkode, men det regner jeg ikke med er et proplem. Er der nogen der kan hjælpe ?
Avatar billede overchord Nybegynder
19. oktober 2004 - 14:48 #1
Lidt stort projekt maaske, men generelt

1 tabel for brugere
1 Tabel for Medier
1 Tabel for udlaan

I tabellen udlaan registreres brugerid, medieid, samt dato for udlaan
Ved returnering slettes posten for mediets id i denne tabel.
Dermed kan tabellen ogsaa bruges til at finde udestaaende udlaan som skal returneres (hvor Now() - udlaansdato > 14 dage f.eks)
Avatar billede overchord Nybegynder
19. oktober 2004 - 14:50 #2
Ydermere - hvis du vil have det saadan at der er ekstra information omkring medierne kan status (inde/udlaant) findes ved et simpelt DCount af tabellen udlaan.
Avatar billede brianmortensen Nybegynder
19. oktober 2004 - 15:04 #3
Det var også noget i den retning jeg havde tænkt mig. Jeg har allerede en database over brugerne og medierne, men manglede lidt konkret idé til det her med at styre hvad der er i udlån, og hvad som er kommet retur. Jeg er ikke helt sikker på, at jeg forstår hvad du mener med at posten for mediets ID slettes ? Kan du komme med et konkret eksempel ?
Avatar billede sjap Praktikant
19. oktober 2004 - 15:29 #4
På nedenstående link findes der et par templates fra Micrsosoft. Måske kan du finde noget her, der kan bruges. Så skal du bare lige tilføje muligheden for at registrere udlån, men der skulle vel ikke være så svært, når først den grundlæggende database ligger der.

http://office.microsoft.com/en-us/templates/CT011366831033.aspx
Avatar billede overchord Nybegynder
19. oktober 2004 - 16:48 #5
ok naar der foretages et udlaan registreres tre ting:
1. Mediets ID
2. Brugerens ID
3. Dato

Disse smides saa i udlaanstabellen mend en normal INSRT INTO sql. Det er selvf muligt at indbygge nogle checks her for om mediets status allerede staar som udlaant eller om brugeren har for mange udstaaende udlaan til at kunne tage flere ud o. lign, men i princippet er det blot at tilfoeje en enkelt linje til tabellen pr medie der udlaanes.
Naar mediet saa retuneres skal denne saa faktisk fjernes fra udlaanstabellen igen idet mediet er tilbage og den ikke skal dukke op under brugerens konto laengere.
Dette antager at du IKKE vil holde styr paa fortidige laan, antal udlaan pr medie osv - hvis dette skal goeres bliver det lidt mere kompliceret.
Ved returnering registreres blot mediets ID, og man koerer sql'en "DELETE * FROM udlaan WHERE medieID = " & ditmedieid.

Konkret Eksempel

Bruger 135 laaner Medie 200 paa den 12. Oktober 2004:

INSERT INTO Udlaan(Bruger, Medie, Udlaansdato) VALUES(135,200,12/10/2004)

En uge eller to senere retuneres mediet.
Man kan nu chekke om der f.eks er en boede paa mediet ved noget i retning af:

if Now() - Dlookup(Udlaansdato, Udlaan, "Medie = 200) > 14 then
'Der skal betales en boede fordi udlaanet var laengere end 14 dage
end if

Hvis dette er iorden kan udlaanet blot slettes fra tabellen nu:
DELETE * FROM udlaan WHERE medie = 200
Avatar billede overchord Nybegynder
19. oktober 2004 - 17:40 #6
Problemet er at jeg ikke lige umiddelbart ved hvilket "mellem-lag" du haar til at haandtere input. Du siger at det kommer fra stregkoder - men hvordan det naar frem til databasen er jeg ikke helt sikker paa hvordan du haandterer.
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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