Sử dụng lại khóa gốc tổng hợp trong các ngữ cảnh bị ràng buộc?
Như câu hỏi đã nêu, đây có phải là thực hành xấu? Tôi có root tổng hợp Người dùng trong ngữ cảnh bị ràng buộc của Identity để xác thực người dùng. Trong ngữ cảnh bị ràng buộc này, tôi có các trường cho Người dùng liên quan đến việc xác định Người dùng, ví dụ: email, mặn pw, v.v.
Tôi cũng có một miền phụ chung để xử lý thông báo. Trong bối cảnh này, Người dùng là Người thông báo. Trong ngữ cảnh này, Thông báo có các trường ví dụ như số lượng thông báo chưa đọc, LastRead, v.v.
Sử dụng lại User id trong trường hợp này có tốt không, vì tôi biết có sự tương ứng 1-1 giữa Người dùng và Người thông báo? Hay tôi nên có một trường trong gốc Thông báo tham chiếu đến Người dùng? Nó cảm thấy thừa, bởi vì sau đó tôi phải thực hiện một tra cứu để lập bản đồ giữa chúng khi tôi biết mối quan hệ của chúng là đối xứng.
Trả lời
Không, không sử dụng lại các khóa gốc tổng hợp để xác định các đối tượng khác nhau trong các ngữ cảnh khác nhau!
Tại sao?
- Vì a
Notificant
không phải là aUser
. Có thể hôm nay, hầu hết người dùng nhận được thông báo. Nhưng ngày mai bạn có thể phải thông báo cho các bên thứ ba không sử dụng hệ thống, hoặc thậm chí các hệ thống giám sát tự động. - Bởi vì đó là một bối cảnh bị ràng buộc khác và các bối cảnh bị ràng buộc có thể phát triển độc lập. Có thể hôm nay
User
vàNotificant
chia sẻ cùng một mức độ chi tiết và có thể liên quan trực tiếp đến một. Nhưng ai biết được về ngày mai? Vì vậy, bạn cần phải suy nghĩ cẩn thận về cách chúng nên được liên hệ với nhau.