Relationships (quan hệ)
Relationships (quan hệ) liên kết các bảng với nhau — cho phép điều hướng giữa bản ghi liên quan và tránh lặp dữ liệu. Đây là điều làm model-driven app “tự động thông minh”.
Ba loại quan hệ
Phần tiêu đề “Ba loại quan hệ”| Loại | Ví dụ | Cơ chế |
|---|---|---|
| One-to-Many (1:N) | Một Khách hàng → nhiều Đơn hàng | Bảng “nhiều” có cột Lookup trỏ về “một” |
| Many-to-One (N:1) | Nhiều Đơn hàng → một Khách hàng | Cùng quan hệ, nhìn từ phía “nhiều” |
| Many-to-Many (N:N) | Một Học viên ↔ nhiều Khóa học | Bảng trung gian (relationship table) tự sinh |
→ 1:N và N:1 là cùng một quan hệ, chỉ khác góc nhìn.
Lookup column — hiện thân của 1:N
Phần tiêu đề “Lookup column — hiện thân của 1:N”- Quan hệ 1:N tạo ra một cột Lookup trên bảng “nhiều”.
- Người dùng chọn bản ghi liên quan (vd chọn Khách hàng cho Đơn hàng).
- Trên form, lookup hiển thị nút tìm/chọn; trên bảng “một”, hiện subgrid các bản ghi con.
Cascade behavior (hành vi lan truyền)
Phần tiêu đề “Cascade behavior (hành vi lan truyền)”Khi thao tác bản ghi “cha”, điều gì xảy ra với bản ghi “con”? Cấu hình cascade:
| Hành động | Tùy chọn |
|---|---|
| Assign (đổi owner) | Cascade / không |
| Delete | Cascade (xóa con theo), Restrict (cấm xóa nếu còn con), Remove link |
| Share/Reparent | Theo nhu cầu |
Vì sao quan hệ quan trọng với model-driven
Phần tiêu đề “Vì sao quan hệ quan trọng với model-driven”- Điều hướng tự động: từ Khách hàng nhấp vào subgrid → mở Đơn hàng, không cần code (sitemap).
- Quick view form: hiển thị thông tin bản ghi liên quan ngay trên form (form components).
- Rollup column: tổng hợp dữ liệu con lên cha (rollup).
- Nền cho star schema khi đưa sang Power BI.
Thiết kế quan hệ đúng
Phần tiêu đề “Thiết kế quan hệ đúng”- Tránh N:N khi không thật cần — đôi khi một bảng trung gian “có thuộc tính riêng” (vd “Đăng ký”, có ngày đăng ký, điểm) tốt hơn N:N thuần.
- Đặt tên quan hệ rõ để dễ quản lý.