Tôi đang xây dựng một ứng dụng nhỏ và thiết lập các mối quan hệ khóa ngoài giữa các bảng. Tuy nhiên tôi đang bối rối là tại sao tôi thực sự cần điều này? Lợi thế là gì - nó có hỗ trợ tôi khi viết các truy vấn của tôi mà tôi không phải thực hiện bất kỳ phép nối nào không? Dưới đây là một đoạn mã ví dụ về cơ sở dữ liệu của tôi:Phím nước ngoài - Chúng làm gì cho tôi?
+-------------------+
| USERS |
+-------------------+
| user_id |
| username |
| create_date |
+-------------------+
+-------------------+
| PROJECTS |
+-------------------+
| project_id |
| creator |
| name |
| description |
+-------------------+
Có mối quan hệ chính giữa users
. user_id
và projects
. creator
Tôi có thể thực hiện truy vấn như vậy không?
SELECT * FROM PROJECTS WHERE USERS.username = "a real user";
Vì MySQL nên biết mối quan hệ giữa các bảng? Nếu không thì chức năng thực sự của khóa ngoại trong thiết kế cơ sở dữ liệu là gì?
Điều này có nên được di chuyển đến http://dba.stackexchange.com/? – simgineer
Không, có thể là không. Nó đã được hỏi và trả lời trước khi trang web đó tồn tại. Không có lợi thế thực sự để di chuyển. –