sql >> Database teknologi >  >> RDS >> Mysql

Skinner validerer unikke fejl på samtidige input

Dette er meget ualmindeligt, og du er sandsynligvis meget uheldig, at det er tilfældet, det er muligt.

Læs:https://github.com/rails/rails/blob/master/activerecord/lib/active_record/validations/uniqueness.rb#L165

Overvej følgende:Bruger A indsender formular

  • Bruger A indsender formular
  • Rails tjekker databasen for eksisterende ID for bruger A- ingen fundet
  • Bruger B indsender formularen
  • Rails tjekker databasen for eksisterende ID for bruger B - ingen fundet
  • Rails Gemmer brugeren en post
  • Rails gemmer bruger B-record

Alt dette skal ske inden for millisekunder, men det er teknisk muligt.

Jeg vil foreslå at tilføje en begrænsning på databaseniveau (primær nøgle).



  1. Sådan tjekker du hvilke låse der holdes på et bord

  2. Mysql:hvordan vælger man grupper med bestemte værdier?

  3. Tilføj IIS 7 AppPool-identiteter som SQL Server-logoner

  4. Begræns antallet af returnerede rækker i en SQL Server-forespørgsel ved at bruge TOP-klausulen