18/10/2018, 23:33

Sự lựa chọn hợp lý: Single Table Inheritance hay Polymorphic Associations?

Khi xây dựng một ứng dụng có nhiều model, điều quan trọng là phải xác định rõ ràng các loại mối quan hệ được sử dụng để liên kết các model với nhau. Quy mô ứng dụng càng lớn thì việc xác định mối quan hệ nào nên tồn tại giữa các model càng khó. Ví dụ một trường hợp chúng ta thường gặp phải, đó là: ...

Khi xây dựng một ứng dụng có nhiều model, điều quan trọng là phải xác định rõ ràng các loại mối quan hệ được sử dụng để liên kết các model với nhau. Quy mô ứng dụng càng lớn thì việc xác định mối quan hệ nào nên tồn tại giữa các model càng khó. Ví dụ một trường hợp chúng ta thường gặp phải, đó là: một số model này lại có quyền truy cập vào chức năng của một model thứ ba nào đó.



Rails có hỗ trợ hai phương thức để chúng ta "ứng phó" với những trường hợp này là:

Single Table Inheritance Polymorphic Associations
Nhiều subclass cùng kế thừa từ một superclass. Một model có thể belongs_to nhiều model khác nhưng chỉ sử dụng một liên kết đơn.
Tất cả dữ liệu đều đặt ở một bảng trong cơ sở dữ liệu. Superclass có trường type để xác định subclass nào belongs_to đối tượng. Mỗi model, cả polymorphic model đều có bảng riêng trong cơ sở dữ liệu.

Đi sâu tìm hiểu thêm nhé             </div>
            
            <div class=

0