26

Tôi đang sử dụng Doctrine 1.2 trên dự án symfony, và tôi đang xem xét trộn các kiểu kế thừa tổng hợp cột và bê tông trong lược đồ của mình: tập hợp cột cho phép tôi truy vấn trong bảng cha và nhận cả bản ghi cha và con, trong khi thừa kế cụ thể cho phép tôi có được lược đồ rõ ràng hơn. Plus, hỗn hợp sẽ nằm trong cùng một chuỗi kế thừa. Tôi sẽ viết tệp lược đồ như thế nào? Như sau?Các loại thừa kế khác nhau trong cùng một lược đồ

A: 

B: 
    inheritance: 
    extends: A 
    type: concrete 

C: 
    inheritance: 
    extends: B 
    type: column_aggregation 
    keyField:   type 
    keyValue:   1 

Hoặc như thế này có lẽ:

A: 

B: 
    inheritance: 
    extends: A 
    type: concrete 

C: 
    inheritance: 
    extends: B 
    type: concrete 
D: 
    inheritance: 
    extends: C 
    type: column_aggregation 
    keyField:   type 
    keyValue:   1 


E: 
    inheritance: 
    extends: C 
    type: column_aggregation 
    keyField:   type 
    keyValue:   2 

Có bất kỳ mối nguy hiểm/hãy cẩn thận?

+0

Hình như không ai khác có kinh nghiệm chia sẻ. Tôi muốn được quan tâm để biết làm thế nào điều này đi mặc dù - suy nghĩ ban đầu của tôi là nó sẽ không hoạt động tốt. – benlumley

+0

@benlumley Vâng, chúng tôi đã thử nó, và chúng tôi đang thử nghiệm, và nó có vẻ làm việc khá tốt cho thời điểm này. Tôi sẽ chỉnh sửa bài đăng của mình và thêm nhận xét nếu chúng tôi gặp phải một số sự cố. Chúng tôi đã thử với phiên bản thứ hai của lược đồ. – greg0ire

+0

@ greg0ire: BEWARE quan hệ khi thừa kế bê tông có liên quan :-) MAke chắc chắn bạn không xác định chúng trên bảng cơ sở. Ive không bao giờ trộn lẫn và phù hợp với bất kỳ mức độ nào hoặc là bị bệnh được itnerested nghe của bất kỳ vấn đề bạn đi qua ... – prodigitalson

Trả lời

1

Chừng nào bạn tránh thừa kế hình tròn hoặc kim cương thừa kế có hình dạng bạn sẽ là tốt và có thể sử dụng

Một tròn thừa kế (rõ ràng trông như sau

Class A Mở rộng B Loại B Mở rộng A

HOẶC

CLASS Một mở rộng C

CLASS B kéo dài một

CLASS C kéo dài một

Một kim cương thừa kế Shaped tròn thêm một chút về. Nó xảy ra khi các loại sau đây của các điều kiện xảy ra

CLASS Một

CLASS B kéo dài một

CLASS C kéo dài một

CLASS D mở rộng B, C

+0

Bạn đang nói nhiều thừa kế là có thể với học thuyết? Vì nó không phải là với php, tôi nghi ngờ nó ... 1 cho các từ vựng mặc dù – greg0ire

+0

Tất cả tôi đang cố gắng để nói là miễn là những hạn chế không có. Chúng ta có thể làm một cách an toàn. – footy

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