Eloquent Relationships Cheat Sheet – Cách khai báo & sử dụng Relationships trong Eloquent Laravel

Tram Ho

Mối quan hệ 1-1

Chi tiết:

Trong ví dụ, chúng tôi có 2 mô hình ( Chủ sở hữu và ô tô ) và 2 bảng ( chủ sở hữu và ô tô ).

Quy tắc kinh doanh:

  • Người lái xe – Chủ sở hữu chỉ có thể lái được 1 ô tô – Xe hơi .
  • Ô tô – Car only can be drive by people drive – Owner .

Sơ đồ quan hệ:

Chi tiết mối quan hệ:

Trong ô tô bảng phải lưu trữ Chủ sở hữu ID (owner_id) .

Các mô hình hùng hồn:

Di chuyển cơ sở dữ liệu:

Hồ sơ lưu trữ:

Truy xuất hồ sơ:

Mối quan hệ một đến nhiều

Chi tiết:

Trong ví dụ, chúng ta có 2 mô hình ( Thief & Car ) và 2 table ( trộm và ô tô ).

Quy tắc kinh doanh:

  • Tên trộm – Kẻ trộm có thể giám sát nhiều ô tô – Ô tô .
  • Ô tô ô tô – Xe hơi có thể được đánh dấu bởi 1 tên giám định – Kẻ trộm .

Sơ đồ quan hệ:

Chi tiết mối quan hệ:

Trong ô tô bảng phải lưu trữ Thief ID (tên trộm) .

Các mô hình hùng hồn:

Di chuyển cơ sở dữ liệu:

Hồ sơ lưu trữ:

Truy xuất hồ sơ:

Mối quan hệ đa hình từ một đến nhiều

Chi tiết:

Trong ví dụ, chúng tôi có 3 mô hình ( Man, Woman & Car ) và 3 table ( nam, nữ và ô tô ).

Quy tắc kinh doanh:

  • 1 người con trai – Man (người mua) có thể mua nhiều chiếc ô tô – Ô tô .
  • 1 người con gái – Người phụ nữ (người mua) có thể mua nhiều chiếc ô tô – Ô tô .
  • 1 ô tô – Car could be buy by 1 people buy any that (Người con trai – Người đàn ông hoặc Người con gái – Người phụ nữ ).

Sơ đồ quan hệ:

Chi tiết mối quan hệ:

Trong ô tô bảng phải lưu trữ ID lưu trữ của người mua ( buy_id ) và người mua đó là ai – người con trai hay người con gái ( buy_type )

Các mô hình hùng hồn:

Di chuyển cơ sở dữ liệu:

Hồ sơ lưu trữ:

Truy xuất hồ sơ:

Nhiều mối quan hệ

Chi tiết:

Trong ví dụ, chúng ta có 2 model ( Driver & Car ), 2 table ( driver & xe hơi ) và 1 table trung gian – pivot ( car_driver ).

Quy tắc kinh doanh:

  • 1 người lái xe – Người lái xe có thể lái được nhiều loại ô tô khác nhau – Cars .
  • 1 ô tô ô tô – Xe có thể được điều khiển bởi nhiều người lái xe – Người lái xe.

Sơ đồ quan hệ:

Chi tiết mối quan hệ:

Gian bảng trung gian – Pivot (car_driver) phải lưu ID người lái xe ( driver_id ) và ID chiếc ô tô mà người điều khiển xe ( car_id ).

Các mô hình hùng hồn:

Di chuyển cơ sở dữ liệu:

Hồ sơ lưu trữ:

Truy xuất hồ sơ:

Mối quan hệ đa hình từ nhiều đến nhiều

Chi tiết:

Trong ví dụ, chúng ta có 3 mô hình ( Valet, Owner & Car ), 4 table ( valets, owner, car & driver ).

Quy tắc kinh doanh:

  • 1 người hầu hết trong nhà bạn – Valet có thể lái được nhiều loại ô tô trong nhà bạn – Ô tô .
  • Bố bạn – Chủ sở hữu có thể lái được nhiều loại ô tô trong nhà – Ô tô .
  • 1 ô tô ô tô – Xe có thể được điều khiển bởi nhiều người lái xe – Valet / Owner .

Sơ đồ quan hệ:

Chi tiết mối quan hệ:

Gian bảng trung gian – Pivot (driver) phải lưu ID người lái xe ( driver_id ), người lái xe là ai – Valet / Owner (driver_type) và ID ô tô ( car_id ).

Các mô hình hùng hồn:

Di chuyển cơ sở dữ liệu:

Hồ sơ lưu trữ:

Truy xuất hồ sơ:

Summary

Reference Document

https://hackernoon.com/eloquent-relationships-cheat-sheet-5155498c209

https://laravel.com/docs/7.x/eloquent-relationships

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo