Chọn theo tính chất quan hệ:
ForeignKey— quan hệ nhiều-một: nhiều bản ghi trỏ về một. VD nhiềuOrderthuộc mộtUser. Cột khóa nằm ở phía "nhiều".OneToOneField— một-một, mỗi bên tối đa một. VDProfilemở rộngUser. Bản chất làForeignKey(unique=True).ManyToManyField— nhiều-nhiều: Django tự tạo bảng trung gian (join table). VDArticle↔Tag. Cần thêm cột cho quan hệ thì dùngthrough=một model riêng.
Lưu ý ForeignKey/OneToOneField bắt buộc khai báo on_delete (CASCADE, PROTECT, SET_NULL, …) để định rõ hành vi khi bản ghi được trỏ tới bị xóa.