Cả hai luôn song hành cùng nhau. Một cái là hoàn chỉnh mà không có cái kia. Nếu bạn muốn các mối quan hệ của mình hoạt động tốt, bạn cần xác định cả hai điều này.
Nếu bạn vừa xác định khóa ngoại trong tệp di chuyển, thì quan hệ sẽ hoạt động trong trường hợp bạn viết một truy vấn thô. Nó sẽ không hoạt động trên các mô hình của bạn vì bạn chưa viết bất cứ điều gì về quan hệ trong các mô hình của mình.
Vì vậy, ngay khi bạn viết hasMany
trong một trong các mô hình của bạn và chức năng tương ứng trong mô hình kia, chỉ khi đó các mô hình của bạn mới biết về nhau và sau đó bạn có thể truy vấn thành công mọi thứ thông qua mô hình cũng như trong cơ sở dữ liệu của mình.
Cũng lưu ý rằng nếu bạn đã xác định đúng quan hệ thông qua hasMany
và belongsTo
trong các mô hình của bạn, nhưng chưa cung cấp khóa ngoại trong bảng của mô hình mà belongsTo
bảng khác, các mối quan hệ của bạn sẽ không hoạt động.
Nói tóm lại, cả hai đều bắt buộc như nhau.