Is het beter / handiger / sneller om de locks in een aparte tabel te stoppen of kan ik deze in het desbetreffende record vastleggen ?
Hangt van verschillende beslissingen af. Kan één gebruiker bijvoorbeeld aan meerdere records tegelijk werken? Of wordt bij het openen van een record een ander door die gebruiker geopend record gesloten?
Welke soorten rechten wil je laten gelden voor de locks? Kan bijvoorbeeld een hoger geplaatste "manager" de lock van een lager geplaatste "medewerker" overrulen?
Echter is dit de werkwijze die ik zou hanteren, dit is voor iedereen anders. Ik maak namelijk ook vaak een log tabel, waar ik dit soort wijzigingen in vast leg. Op deze manier kun je snel achter problemen komen, en eventueel je klant/gebruikers erop aan spreken.
Ik zou het ook in de tabel zelf zetten. Je moet het vooral zien als een hulpmiddel. Als Pietje normaal gesproken bericht X mag wijzigen, dan mag hij dat nu ook. Echter, het slot waarschuwt hem dat iemand anders met het bericht bezig is. Mooier is dan nog (denk ik) als je de naam van degene die het bericht aan het bewerken is, opslaat in het "lock" veld. Dus, standaard is het veld bijv. 0 en zodra iemand gaat bewerken, staat de naam van de persoon die aan het bewerken is in het lock-veld. Op die manier kun je dus ook zien WIE het record aan het bewerken is. Dan kun je even naar die persoon toe lopen en vragen of hij inderdaad aan het bewerken is. Zo ja, dan weet je dat jij dus niet kunt bewerken. Zo nee, dan kun jij het bericht gewoon unlocken en alsnog gaan bewerken.
Hier kun je dus eventueel een locked aan toe voegen als je dit gebruikt, zo kun je dus ook makkelijk uit de log de username halen die het momenteel aan het bewerken is.
Maar zoals ik al zei is dit een persoonlijke manier van werken, ik wil perse log's hebben zodat wanneer een klant komt klagen over de werking ik snel kan zien en eventueel aan kan tonen waar het probleem ligt.