2009-11-25 71 views

Trả lời

13

Ưu điểm:

  • Bạn có thể liên kết bất cứ điều gì để bất cứ điều gì khá dễ dàng
  • mối quan hệ thích ứng giúp sức chứa tình huống không lường trước được
  • Rất dễ dàng để thực hiện các mối quan hệ
  • Tuyệt vời cho hệ thống ad-hoc

Nhược điểm:

  • phím nước ngoài không thực tế
  • chỉ số bao gồm một chiều hướng phức tạp
  • Mối quan hệ giữa các bảng khó có thể xác định khi sử dụng STI
  • công cụ biểu đồ
  • Cơ sở dữ liệu không thể giải thích
  • Không phải lúc nào thiết thực cho tham gia mô hình
  • mạnh không khuyến khích các hệ thống cần phải xác minh tính toàn vẹn của dữ liệu

Tôi là một fan hâm mộ lớn của việc sử dụng các mối quan hệ của loại này cho các hồ sơ được gắn với một số lượng lớn những thứ theo yêu cầu, ví dụ, một bình luận hoặc ghi chú chú thích có thể áp dụng cho nhiều bản ghi.

Nó không phải là rất phù hợp cho các tình huống mà mối quan hệ được thực hiện trong một JOIN thường xuyên. Đó là, các hiệp hội đa hình không nên ở giữa một mối quan hệ giữa các hồ sơ, nhưng là một cái gì đó trên chu vi.

+0

Bạn có thể giải thích lý do tại sao nó không thích hợp để được ở giữa một mối quan hệ giữa các hồ sơ? Các khóa ngoại không thực tế, nhưng tính toàn vẹn được xử lý ở lớp Rails chứ không phải DB, phải không? – Turadg

+2

Sử dụng một liên kết đa hình ở giữa có nghĩa là bạn có tối thiểu ba thành phần cho điều kiện tham gia của bạn, bốn nếu cả hai mối quan hệ là đa hình. Điều này có thể có ảnh hưởng bất lợi nghiêm trọng đến hiệu suất khi kích thước chỉ mục có thể tăng đáng kể với số lượng các phần tử trong khóa liên quan. Chỉ số lớn hơn trở nên đắt hơn nhiều để cập nhật, do đó, thuận lợi là chỉ lập chỉ mục mức tối thiểu cần thiết. Như mọi khi, hãy dành thời gian để đánh giá bất kỳ cấu trúc cơ sở dữ liệu được đề xuất nào với số lượng lớn * đại diện dữ liệu của hệ thống của bạn trên quy mô lớn. – tadman

+0

Câu trả lời rất rõ ràng, cảm ơn. – Turadg

Các vấn đề liên quan