Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL атомарни операции и заключване на таблици

Много сте близо до дизайна си, но не съвсем.

На първо място, вашата таблица за събития трябва да съдържа броя билети, които все още са налични за вашето събитие (в допълнение към всичко друго, което искате там).

Второ, вашата ескроу таблица трябва да има колона DATETIME, указваща кога изтича ескроу. Трябва да зададете тази стойност всеки път, когато билетите отиват в ескроу.

Трето, транзакцията за поставяне на билети в ескроу трябва да

  1. заключване на реда на събитието.
  2. прочетете колоната за налични билети. (прекъсване, ако не са налични достатъчно)
  3. вмъкване на ред в ескроу таблицата
  4. актуализирайте реда на събитието, за да намалите колоната с налични билети.
  5. отключване на реда за събития.

Четвърто, действието за завършване на продажбата трябва да изтрие реда за ескроу и да вмъкне ред за продаден билет. Това не е трудно.

Пето, имате нужда от операция по почистване на ескроу. Това трябва да търси всички ескроу редове, които са изтекли (които имат дата на изтичане в миналото) и за всеки от тях:

  1. заключване на съответния ред за събитие.
  2. прочетете броя на ескроу билетите от ескроу таблицата
  3. изтрийте реда на таблицата за ескроу.
  4. актуализирайте реда на събитието, за да увеличите колоната с налични билети.
  5. отключване на реда за събития.

Номерът е да имате наличен брой билетите се поддържат по начин, който е правилно свързан, така че условията на състезанието между потребителите да не надценяват вашето събитие.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySql 5.7 Функция UUID() съпоставяне по подразбиране - Незаконен микс от съпоставяне

  2. Как да направя функция за добавяне на приятел/приятел в PHP?

  3. Експортиране на mysql таблица в .txt или .doc файл с помощта на PHP

  4. Мигриране на Spring Batch MyISAM Sequence Tables към InnoDB

  5. Как да обединим ред от таблица с PHP масив?