Lợi thế của việc xác định khóa ngoài khi làm việc với khung MVC xử lý mối quan hệ là gì?lợi thế của việc xác định khóa ngoài là gì
Tôi đang sử dụng cơ sở dữ liệu quan hệ với khuôn khổ cho phép định nghĩa mô hình có quan hệ. Bởi vì các khóa ngoại được xác định thông qua các mô hình, có vẻ như các khóa ngoại là thừa. Khi nói đến việc quản lý cơ sở dữ liệu của một ứng dụng đang phát triển, việc chỉnh sửa/xóa các bảng đang sử dụng khóa ngoài là một rắc rối.
Có lợi thế nào khi sử dụng khóa ngoại mà tôi đang gửi bằng cách bỏ hoàn toàn việc sử dụng chúng?
Các mối quan hệ khóa ngoài thực thi toàn vẹn dữ liệu ở một lớp dữ liệu do đó giảm dữ liệu xấu đi vào hệ thống; không thật sự lắm. Ví dụ: nếu bạn có bảng người có mối quan hệ FK với Bảng giới tính, nhà phát triển có thể chèn bản ghi vào người với giới tính là 'whocares'. Bây giờ, bạn có thể không quan tâm về điều này, nhưng nếu bạn xây dựng logic ra khỏi mục hợp lệ và chỉ mong đợi nam/nữ, sau đó tốt ... bạn sẽ có một vấn đề. Nếu bạn muốn đảo ngược kỹ sư DB để có được một ERD, thì bạn cũng có vấn đề. và giàn giáo và các công nghệ khác tiếp sức trên mức thiết kế này ... – xQbert
Có liên quan cao: [Tại sao các khóa ngoại được sử dụng nhiều hơn trong lý thuyết hơn là trong thực tế?] (http://stackoverflow.com/questions/1876013/why-are-foreign –
Chúng tôi có một kịch bản tương tự ở một nơi tôi từng làm việc: một ứng dụng không có khóa ngoài vì ORM đã xử lý tất cả các vấn đề như vậy, v.v ... Một ngày nọ khách hàng quan trọng đã phát hiện ra mất mát dữ liệu đáng kể mà cuối cùng đã được truy trở lại một lỗi trong ORM. Rất gây tổn hại cho mối quan hệ, đổ lỗi cho các nhà phát triển ORM không giúp đỡ. Chìa khóa nước ngoài đã được bổ sung rất sớm sau đó! – onedaywhen