-
Không có ràng buộc thực tế có thể dẫn đến tham chiếu bị hỏng, nguồn gốc không hợp lệ và các loại mâu thuẫn dữ liệu khác. Tôi không phải là chuyên gia về Django nhưng tôi sẽ đoán rằng trong hầu hết các trường hợp, Django vẫn sẽ xử lý các mối quan hệ tốt trừ khi bạn cố tình thêm một số hồ sơ không hợp lệ.
-
Thông thường, nếu RDBMS của bạn hỗ trợ các ràng buộc khóa ngoại, hoàn toàn không có lý do gì để không sử dụng chúng và việc bỏ qua chúng có thể được coi là một lỗ hổng thiết kế.
-
Bạn nên xem xét thêm các ràng buộc chính. Chúng không chỉ cung cấp cho DBMS của bạn một ý tưởng tốt về cách tối ưu hóa các truy vấn, chúng còn đảm bảo tính nhất quán trong dữ liệu của bạn. Tôi khá chắc chắn Django có một cài đặt nào đó sẽ tự động tạo SQL để thêm các ràng buộc chính khi bạn chạy
manage.py syncdb
Để biết thêm thông tin về lý do tại sao bạn nên thích khóa ngoại hơn, bạn nên đọc Tài liệu Khoá Ngoại MySQL
Điều thú vị nhất: