Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Sử dụng char làm khóa chính / khóa ngoại có phải là không?

Hiệu suất không thực sự là vấn đề chính, ít nhất không phải đối với tôi. Vấn đề là nhiều hơn về khóa thay thế và khóa tự nhiên.

Mã quốc gia không tĩnh. Họ có thể và làm thay đổi. Các quốc gia đổi tên (ví dụ:Ethiopia thành Eritrea). Chúng ra đời (ví dụ như sự tan rã của Nam Tư hoặc Liên bang Xô viết) và chúng không còn tồn tại (ví dụ như Tây và Đông Đức). Khi điều này xảy ra, mã tiêu chuẩn ISO sẽ thay đổi.

Thông tin khác trong Thay đổi tên kể từ năm 1990:Quốc gia, thành phố và hơn thế nữa

Khóa thay thế có xu hướng tốt hơn vì khi những sự kiện này xảy ra, các khóa không thay đổi, chỉ các cột trong bảng tham chiếu mới có.

Vì lý do đó, thay vào đó, tôi có xu hướng tạo các bảng quốc gia và đơn vị tiền tệ bằng khóa chính int.

Điều đó đang được nói, các trường khóa varchar sẽ sử dụng nhiều dung lượng hơn và có một số nhược điểm về hiệu suất nhất định có thể không phải là vấn đề trừ khi bạn đang thực hiện một số lượng lớn các truy vấn.

Để đầy đủ, bạn có thể muốn tham khảo Những sai lầm khi phát triển cơ sở dữ liệu được thực hiện bởi các nhà phát triển ứng dụng .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Di chuyển cơ sở dữ liệu trên sản xuất django

  2. Làm thế nào để CHỌN theo MAX (ngày)?

  3. Truy xuất các hàng được nhóm theo giờ với MySQL

  4. Phiên Flask-SQLAchemy luồng cục bộ này có gây ra lỗi máy chủ MySQL đã biến mất không?

  5. Truy vấn tham số PHP / MySQL