2009-08-18 12 views
0

Gestion multi utilisateursGestion des utilisateurs multiples (émission de factures)

Exigences: J'ai une (applications php mysql jquery) où les utilisateurs peuvent:

  1. Examiner les dossiers et mettre à jour certains domaines.
  2. Émettre des factures en sélectionnant des commandes.

Problèmes: Le problème est qu'une facture ne doit pas être émise deux fois pour la même période. En outre, un champ ne doit pas être mis à jour par deux utilisateurs ou plus en même temps.

Solutions possibles:

  1. Verrouillez les tables quand ils sont mis à jour, et si l'utilisateur effectue une action, notifier et rechargent.
  2. Système de verrouillage de l'implémentation, qui, lorsqu'un utilisateur effectue certaines actions, bloque les actions à effectuer par d'autres utilisateurs.
  3. ...
+0

Cela ressemble à une application parfaite pour RoR. Si vous n'êtes pas encore trop engagé dans votre base de code, vous pouvez envisager de basculer. – Justin

Répondre

1

Je ne sais pas si cela va vous aider ou non, mais je voudrais d'abord lire à ce sujet dans le contexte de DataTable Adapter .Net qui suit les modifications apportées aux lignes de données depuis que vous les lisez et les renvoyez à db . Ce qu'il fait est d'envoyer tous les champs au lieu de seulement ceux qui ont été modifiés.

Vous pouvez utiliser des horodatages pour les lignes. Lisez l'horodatage avec d'autres informations et avant d'enregistrer vérifiez si l'horodatage actuel (des lignes) est plus récent que ce que vous avez. De cette façon, vous pouvez minimiser le verrouillage de cette partie seulement, en comparant les horodatages et les mises à jour si vous êtes le premier à y parvenir.

2

« verrouillage optimiste » Lookup - signifie essentiellement l'ajout d'un attribut de version et en la passant et incrémenter avec des mises à jour pour vous assurer que personne d'autre est arrivé là en premier. Si N utilisateurs essaient la même opération basée sur la même version, l'un gagne, d'autres perdent. C'est rapide simple et facile pour une grande variété de cas.

Questions connexes