Tôi có một dự án GAE được viết bằng Java và tôi có một số suy nghĩ về HRD và một vấn đề mà tôi không chắc chắn cách giải quyết.Truy vấn HRD của Máy ứng dụng của Google mà không có tổ tiên
Về cơ bản tôi có người dùng trong hệ thống của mình. Người dùng bao gồm userid, tên người dùng, email và mật khẩu. Mỗi lần tôi tạo một người dùng mới, tôi muốn kiểm tra xem chưa có người dùng nào có cùng userid (không bao giờ xảy ra), tên người dùng hay email.
Userid là chìa khóa, vì vậy tôi nghĩ rằng việc thực hiện việc này sẽ nhất quán. Tuy nhiên, khi tôi thực hiện truy vấn (và sử dụng bộ lọc) để tìm người dùng có thể có cùng tên người dùng hoặc email, tôi không thể chắc chắn rằng kết quả là nhất quán. Vì vậy, nếu ai đó đã tạo một người dùng có cùng tên người dùng hoặc email một vài giây trước, tôi có thể không tìm thấy nó với truy vấn của tôi. Tôi hiểu rằng tổ tiên được sử dụng để giải quyết vấn đề này, nhưng nếu tôi không có tổ tiên để sử dụng cho truy vấn thì sao? Người dùng không có cha mẹ.
Tôi rất sẵn lòng nghe suy nghĩ của bạn về điều này và được coi là phương pháp hay nhất trong các tình huống như thế này. Tôi đang sử dụng Objectify cho GAE nếu điều đó thay đổi bất cứ điều gì.
Tôi đã hỏi một câu hỏi mà bạn có thể thấy rất hữu ích. (http://stackoverflow.com/questions/6584435/how-can-i-create-two-unique-queriable-fields-for-a-gae-datastore-data-model) Tôi cũng cần lưu trữ thông tin duy nhất cho người dùng của tôi. Trong trường hợp của tôi, tôi cần lưu trữ cả một email duy nhất và User ID duy nhất cho mỗi người dùng. Đây là một chút khó khăn với HRD, nhưng tôi đã đi đến một giải pháp đáng tin cậy. ... cont ... – RLH
Vấn đề duy nhất với tình huống của tôi là triển khai tạo tài khoản của tôi (xem câu trả lời của tôi) sẽ không mở rộng tốt. Đó là OK trong hoàn cảnh của tôi vì ứng dụng GAE của tôi rất nhỏ và có một lượng nhỏ người dùng mới (1 hoặc 2 tháng). Ngoài ra, thông tin này bằng Python, nhưng mã đơn giản-- bạn sẽ có thể quay lại -translate nó đến Java với tương đối dễ dàng. – RLH
@RLH Cảm ơn bạn đã đầu vào, luôn thú vị để xem các giải pháp khác nhau, nhưng tôi không nghĩ rằng giải pháp của bạn sẽ hoạt động tốt trong trường hợp của tôi. – Joel