Thể thao
Chống đặt trùng sân: vì sao phải chặn ngay trong cơ sở dữ liệu
Đăng ngày

Đặt trùng sân thường xảy ra đúng giờ đông khách nhất. Bài viết giải thích ba lớp chặn trùng trên Sol26 SportTech và vì sao lớp cuối nằm trong cơ sở dữ liệu.
Với chủ sân, đặt trùng là lỗi đắt nhất: hai nhóm cùng đến một sân, một nhóm phải về, và sân mất luôn khách quen. Lỗi này ít khi xảy ra lúc sân vắng. Nó xảy ra lúc bảy giờ tối, khi điện thoại reo liên tục, nhân viên vừa bán nước vừa nhận đơn và nhiều người cùng xem một khung giờ trên ứng dụng.
Bài viết mô tả cách Sol26 SportTech chặn đặt trùng và vì sao lớp chặn cuối cùng được đặt trong cơ sở dữ liệu chứ không chỉ trong mã lệnh của phần mềm.
Vì sao sổ tay và nhóm Zalo dễ trùng
Khi lịch sân nằm trong một quyển sổ, một file Excel hay tin nhắn Zalo, mỗi người nhận đơn chỉ thấy phần lịch mình đang cầm. Nhân viên ca chiều nhận một đơn qua điện thoại, chủ sân nhận một đơn khác qua Zalo cho cùng giờ, và không ai biết cho đến lúc khách đến sân.
Nhiều phần mềm đặt sân kiểm tra trùng bằng cách đọc lịch rồi mới ghi đơn. Cách này đúng khi ít người dùng, nhưng khi hai yêu cầu đến gần như cùng lúc, cả hai có thể cùng đọc thấy giờ còn trống và cùng được ghi. Đó là lý do kiểm tra trùng bằng mã lệnh thường hỏng đúng lúc đông khách nhất.
Lớp một: giữ giờ 5 phút
Khi người chơi chọn một giờ trên ứng dụng, giờ đó được giữ 5 phút trong lúc họ hoàn tất. Người khác xem cùng sân sẽ thấy giờ này đang bận và không chọn được. Hết 5 phút mà khách chưa hoàn tất thì giờ được trả lại lưới.
Lớp này tránh tình huống hai người cùng điền thông tin cho một giờ rồi một người bị từ chối ở bước cuối.
Lớp hai: chặn ngay trong cơ sở dữ liệu
Lớp cuối nằm trong chính cơ sở dữ liệu. Cơ sở dữ liệu từ chối ghi hai đơn chồng giờ trên cùng một sân, bất kể đơn đến từ ứng dụng, từ quầy hay từ vé tháng. Hai người bấm cùng một phần nghìn giây thì chỉ một người có sân.
Điểm khác biệt nằm ở chỗ này: muốn ghi trùng thì phải cơ sở dữ liệu sai, không phải phần mềm sai. Chủ sân không phải tin vào việc nhân viên nhớ kiểm tra, cũng không phụ thuộc vào tốc độ mạng lúc đông khách.
Sân ghép tự khóa theo
Sân bóng đá thường có sân 7 ghép từ hai sân 5. Nếu lịch của sân 7 và hai sân 5 được quản lý riêng, rất dễ có trường hợp sân 7 đã cho thuê nhưng một sân 5 bên trong vẫn hiện trống.
Trên Sol26 SportTech, đặt sân 7 thì hai sân 5 nằm trong nó tự khóa theo. Quy tắc này được khai báo một lần khi dựng lưới sân và áp dụng cho mọi đơn sau đó.
Mọi đơn đi qua cùng một lưới
Khách gọi điện hay đến quầy vẫn được nhân viên nhập thẳng vào lưới đặt sân như cũ. Vé tháng cũng được sinh vào cùng lưới, có cảnh báo buổi trùng ngay lúc ký. Vì mọi nguồn đơn dùng chung một lưới và một lớp chặn, giờ trống trên ứng dụng chính là giờ trống ở quầy.
Lưới tự tải lại mỗi phút, nên màn hình ở quầy và trên điện thoại chủ sân luôn gần với trạng thái mới nhất. Khi hai người thao tác cùng lúc, cơ sở dữ liệu vẫn là nơi quyết định cuối cùng.
Câu hỏi thường gặp
- Hai người bấm đặt cùng một giờ cùng lúc thì sao?
- Chỉ một đơn được ghi. Cơ sở dữ liệu từ chối đơn thứ hai vì chồng giờ trên cùng một sân, dù hai lượt bấm cách nhau chưa tới một phần nghìn giây.
- Giờ đã chọn được giữ bao lâu?
- Giờ đã chọn được giữ 5 phút trong lúc khách hoàn tất đặt sân. Trong thời gian đó người khác không chọn được giờ này.
- Sân 7 ghép từ hai sân 5 thì xử lý thế nào?
- Khi sân 7 được đặt, hai sân 5 nằm trong nó tự khóa theo, và ngược lại sân 7 không đặt được khi một trong hai sân 5 đã có khách.
- Đơn khách gọi điện hay đến quầy có được chặn trùng không?
- Có. Nhân viên nhập đơn vào cùng lưới đặt sân với đơn từ ứng dụng, nên mọi đơn đều qua cùng một lớp chặn trùng.

Sol26 SportTech
Phần mềm quản lý sân thể thao và ứng dụng đặt sân


