Avatar billede Slettet bruger
01. januar 2004 - 23:16 Der er 1 kommentar og
1 løsning

Låsning af database

Jeg er i gang med at programmere en fodboldsite, for en klub jeg spiller i.

Ideén er at jeg i starten af året opretter alle de kampe vi skal spille, med de oplysninger der nu er til rådighed.

Coadmins skal så efterfølgende kunne vælge at redigere disse kampe, for at kunne indtaste yderlige oplysninger.

Jeg har overvejet at lave en tabel, der holder styr på brugernavne og sessions-id'er, hver gang en co-admin logger på.

Så kan jeg efterfølgende lave en anden tabel, der holder styr på om en co-admin er i gang med at redigere en kamp. Når en anden co-admin så forsøger at editere en kamp, vil jeg checke op imod denne database, for at se om kampen er "låst".

Hvis brugeren logger af, låses kampen op igen.

Når en co-admin logger på, checkes der samtidig om andre co-admins har været inaktive i f.eks. 20 minutter, og herefter destrueres deres session, og deres "låste kampe" frigives igen.

Det var min idé om hvordan det kan være....

Ris/Ros til denne løsning, samt evt. forslag til andre løsninger modtages med kyskhånd.

Der gives point for alt brugbart.
Avatar billede Slettet bruger
01. januar 2004 - 23:26 #1
Lyder fint, men sådan en "politik" afhænger jo meget af, hvilke brugere man har med at gøre og hele ens scenarie. Så du (og dine coadmins) er utvilsomt de bedste dommere overfor en løsning.

Et alternativ kunne være:

Et coadmin (A) går ind på siden, hvor man registrer en kamp. Han laver sine ændringer og gemmer. I tiden fra hvor han er gået ind på siden, og til han gemmer, kan du konstantere at en anden bruger (B), har lavet ændringer.

Du kan nu (inden du overskriver noget), fortælle A om de ændringer B har foretaget. Det er altså blevet A's problem, at data er ændret i mellemtiden, og han må redde trådene ud. Det kan han gøre ved forskellige muligheder. Han kan overskrive B's ændringer, eller han kan manuelt indflette B's ændringer med egne.

Denne løsning kræver lidt diciplin af dine coadmins, så de ikke bare overskriver bevistløs, når de børes opmærksom på, at en anden har ændret i mellemtiden.

En metode som denne anvendes af bl.a. et system CVS (Concurrent Versions System). Og må siges, at være afprøvet i praksis.
Avatar billede Slettet bruger
02. januar 2004 - 00:30 #2
"hvor man registrer en kamp" = "hvor man redigerer en kamp"
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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