Trước hết: tại sao bạn muốn vẽ nó trong UML? Nếu bạn đã có một ERD, bạn muốn minh họa thêm thuộc tính bổ sung/thay thế nào với sơ đồ lớp UML mà ERD không cung cấp cho bạn?
Tại sao? Bởi vì UML là một công cụ. Trên giả định sơ đồ chỉ dành cho tiêu dùng của con người (tức là bạn không tạo mã từ nó) thì bạn nên sử dụng UML để hiển thị thông tin bạn đang cố gắng giao tiếp.
Như một tiêu chuẩn chung, UML không nói gì về cách bạn chính thức hóa danh tính (PK/FK). UML tuân theo thành ngữ OO rằng mọi đối tượng đều có bản sắc ngầm - do đó bạn không cần phải xác định rõ ràng nó. Vì vậy, trong trường hợp đơn giản nhất, bạn có thể:
- liệt kê Thuộc tính PK làm thuộc tính bình thường;
- bỏ qua tất cả các thuộc tính FK.
Nếu đáp ứng nhu cầu làm mẫu của bạn thì bạn đã hoàn tất.
Là lần tinh lọc thứ hai, bạn có thể gắn thẻ thuộc tính PK với một ràng buộc ocl isUnique()
, một lần nữa bỏ qua các FK.
Một tùy chọn khác sẽ là sử dụng các quy tắc của Executable UML. Nó biểu thị cả PKS ('nhận dạng'} và FKS ('thuộc tính tham chiếu'} trực tiếp trên sơ đồ lớp Vì vậy, nó gần gũi nhất với chụp tất cả mọi thứ trong ERD
Vì vậy, trong bản tóm tắt:.. Không có câu trả lời đúng UML áp đặt. Tất cả phụ thuộc vào những gì bạn muốn giao tiếp với các sơ đồ.
hth.
Bỏ qua FK không có ý nghĩa nhiều, imo. Sử dụng các hiệp hội (có các thuộc tính cho thành viên kết thúc tốt) như OP được hỏi là phù hợp hơn. – Christian
@Christian: Có, FK có thể được hiển thị dưới dạng vai trò trong liên kết kết thúc. Quan điểm của tôi là không có bộ quy tắc cứng và nhanh nào phải được áp dụng. Bạn có vĩ độ để làm điều gì đó hoạt động trong trường hợp cụ thể của bạn. FKs như vai trò sẽ là một mặc định tốt mặc dù. – sfinnie