2012-11-12 29 views
6

Tên chỉ mục MySQL và tên khóa ngoài phải khác nhau đối với các bảng khác nhau?Tên chỉ mục MySQL và tên khóa ngoài phải khác nhau đối với các bảng khác nhau?

Ví dụ:

Hai bảng đều có cùng một trường (profile_id) thuộc bảng thứ ba (tiểu sử). Vì vậy, tôi muốn làm cho profile_id được lập chỉ mục và hạn chế nó như một khóa ngoại.

Tên chỉ mục có thể được đặt tên là "profile_id_idx" trong cả hai bảng không?

Và "profile_id_fk" làm tên khóa ngoại cho cả hai?

+0

Không, đó là những khóa ngoại là dành cho –

+1

Ngay cả khi điều đó có hiệu quả, tại sao lại có rủi ro? Chỉ cần đặt tên khác và được thực hiện với nó – mvp

Trả lời

6

Tên khóa ngoài phải là duy nhất trên tất cả các bảng trong tất cả các cơ sở dữ liệu. Các tên chỉ mục có thể được sử dụng lại trong các bảng khác nhau.

+0

Vì vậy, đặt tên rõ ràng ràng buộc khóa ngoài hoặc dẫn đến xung đột tên hoặc yêu cầu tiền tố bởi cơ sở dữ liệu và bảng ('db_tbl_col_fk') gây trùng lặp mã. –

Các vấn đề liên quan