Có một dự án tôi đang làm việc đang tìm cách sản xuất một ứng dụng web sẽ quản lý danh sách nhiệm vụ giữa nhiều người dùng. Đây là danh sách tác vụ chính có các mục nhiệm vụ được phân phối bởi người dùng được ủy quyền. Mỗi người dùng có tài khoản riêng của mình để đăng nhập và xem các nhiệm vụ họ được giao; nhiều người dùng có thể có một nhiệm vụ chung.
Tôi đang cố gắng loại bỏ các chi tiết của dự án vì tôi đang vật lộn nhiều hơn với khái niệm chung về cách xử lý các tình huống sau, nhưng nếu nó giúp, tôi đang sử dụng Java, EclipseLink và GWT với RequestFactory được triển khai. Cơ sở dữ liệu là PostgreSQL.
Vì vậy, các vấn đề khái niệm tôi đang cố gắng hòa giải là như sau:
Nếu một tác vụ chung cho nhiều người dùng thay đổi theo bất kỳ cách nào, ví dụ như tác vụ đã hoàn thành, đã xóa, v.v., danh sách nhiệm vụ của tất cả người dùng có tác vụ này sẽ được cập nhật. Những mẫu thiết kế nào có hỗ trợ thực hiện chức năng này?
- Một số mẫu tôi đã xem là Người quan sát và Người hòa giải - có những mẫu nào khác cần được xem xét về những mẫu này không?
Nói rằng có hai người dùng thay đổi cùng một nhiệm vụ cùng một lúc.
Đầu tiên, tôi nên cho phép tình huống đó xảy ra hay tôi nên khóa nó cho đến khi một hoặc người khác thực hiện thay đổi?
Thứ hai, nếu tôi không cài khóa, làm cách nào để điều chỉnh những thay đổi được chấp nhận? Điều này liên quan đến tình huống trong 1 vì người dùng 1 có thể gửi dữ liệu và trước khi người dùng 2 nhận được dữ liệu cập nhật, anh ấy / cô ấy có thể đã đi trước và gửi các thay đổi của mình.
Tôi thực sự đang tìm kiếm bất kỳ điểm hướng dẫn, lời khuyên hoặc mẹo nào bạn có thể cung cấp về cách đồng bộ hóa dữ liệu đúng cách giữa nhiều phiên bản của ứng dụng web này. Tôi rất đánh giá cao điều đó!