ฉันกำลังมองหาการสร้างแอพมือถือเครื่องแรกของฉัน หนึ่งในคุณสมบัติหลักของแอปพลิเคชั่นคืออุปกรณ์ / ผู้ใช้หลายคนจะสามารถเข้าถึงข้อมูลเดียวกันได้และทั้งหมดนี้จะมีสิทธิ์ CRUD
ฉันเชื่อว่าสถาปัตยกรรมควรเกี่ยวข้องกับเซิร์ฟเวอร์กลางที่จัดเก็บข้อมูลทั้งหมด อุปกรณ์จะใช้ API เพื่อโต้ตอบกับเซิร์ฟเวอร์เพื่อดำเนินการข้อมูล (เช่นการเพิ่มบันทึกการแก้ไขบันทึกการลบบันทึก)
ฉันจินตนาการถึงสถานการณ์ที่การซิงโครไนซ์ข้อมูลจะกลายเป็นปัญหา สมมติว่าแอปพลิเคชันควรทำงานเมื่อไม่ได้เชื่อมต่อกับอินเทอร์เน็ตดังนั้นจึงไม่สามารถสื่อสารกับเซิร์ฟเวอร์กลางนี้ได้ ดังนั้น:
- ผู้ใช้กอยู่ในสถานะออฟไลน์และแก้ไขบันทึก # 100
- ผู้ใช้ B ออฟไลน์และแก้ไขบันทึก # 100
- ผู้ใช้ C ออฟไลน์และลบบันทึก # 100
- ผู้ใช้ C เข้าสู่สถานะออนไลน์ (สมมุติว่า # 100 ควรลบข้อมูลบนเซิร์ฟเวอร์)
- ผู้ใช้ A และ B ออนไลน์ แต่บันทึกที่พวกเขาแก้ไขไม่มีอยู่อีกต่อไป
สถานการณ์ทุกประเภทที่คล้ายกับด้านบนสามารถเกิดขึ้นได้
สิ่งนี้จัดการโดยทั่วไปอย่างไร? ฉันวางแผนที่จะใช้ MySQL แต่ฉันสงสัยว่ามันไม่เหมาะสมสำหรับปัญหาดังกล่าว