Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Đặt tên cột username: 'name' hay 'user_name' trong MySQL?

Khuyến nghị

Không nên thêm tiền tố tên bảng vào tên cột (ví dụ: user_name, user_email trong bảng user). Nên dùng tên ngắn gọn: username hoặc name.

Lý do:

  • Gây thừa thãi, dài dòng: user.user_name vs user.username
  • Rủi ro歧义 khi JOIN nhiều bảng: SELECT user_name FROM user JOIN profile... (cột nào?)
  • Vi phạm quy tắc đặt tên chuẩn (ISO 11179, các style guide phổ biến)

Ví dụ thiết kế tốt

mysql> create table `user` (
    -> username varchar(20),
    -> password varchar(20)
    -> ); 
Query OK, 0 rows affected (0.66 sec)

mysql> insert into `user` values('John','J_635'); 
Query OK, 1 row affected (0.34 sec)
mysql> insert into `user` values('Carol','Carol2212'); 
Query OK, 1 row affected (0.16 sec)
mysql> insert into `user` values('David','@12345678'); 
Query OK, 1 row affected (0.14 sec)

Kết quả

mysql> select * from `user`;
+----------+-----------+
| username | password  |
+----------+-----------+
| John     | J_635     |
| Carol    | Carol2212 |
| David    | @12345678 |
+----------+-----------+
3 rows in set (0.00 sec)

Quy tắc đặt tên cột phổ biến:

  • Khóa chính: id (không phải user_id trong bảng user)
  • Khóa ngoại: user_id (trong bảng khác tham chiếu đến user.id)
  • Boolean: is_active, has_permission (prefix is/has/can)
  • Timestamp: created_at, updated_at, deleted_at
  • Tránh từ khóa SQL: dùng backtick hoặc đổi tên (order → sort_order)

Khi JOIN: SELECT u.username, p.bio FROM user u JOIN profile p ON u.id = p.user_id - rõ ràng, không ambiguous.