Tôi có nhiều trường hợp hai lớp Children
và Animal
có mối quan hệ thực thể nhiều đối tượng.Tôi sử dụng cấu trúc dữ liệu nào ở đây?
Tôi muốn có cấu trúc dữ liệu như vậy được đưa ra Children
Tôi có thể nhận danh sách Animal
được ánh xạ tới nó và ngược lại. Đối với bất kỳ Animal
nào, tôi có thể nhận danh sách Children
được ánh xạ tới nó.
Tôi cần cấu trúc dữ liệu này để đồng thời sao cho có thể truy cập bất kỳ chuỗi nào.
Vì vậy, đưa ra một bản đồ ví dụ:
Child1 -> Animal1
Child1 -> Animal2
Child1 -> Animal3
Child2 -> Animal2
Child2 -> Animal3
Child3 -> Animal3
Truy vấn cho Child1
Tôi muốn để có được một danh sách trả về: [ Animal1, Animal2, Animal2 ]
.
Truy vấn Animal2
Tôi muốn nhận danh sách được trả lại: [ Child2, Child3 ]
. Cách duy nhất tôi có thể nghĩ để làm điều này là sử dụng từ điển và danh sách cho mỗi mục trong từ điển này (cả Động vật và Trẻ em), nhưng sau đó tôi sẽ phải xử lý khóa đồng bộ danh sách. .
Bạn thực sự cần thêm bảng ánh xạ, chẳng hạn như AnimalChildren để giúp xóa nhiều thứ đó với nhiều người. – mattytommo
Sử dụng danh từ số nhiều cho tên lớp là kiểu xấu; xem xét đổi tên lớp của bạn thành "Trẻ em". –
Mối quan hệ nhiều-nhiều này có thay đổi theo thời gian hay một khi bạn có một bộ trẻ em và động vật, quan hệ của chúng có được sửa chữa không? Nó là dễ dàng hơn nhiều để làm cho một thread an toàn hoạt động nếu không có viết. –