Database Conventions
Quy định về cách đặt tên
- Sử dung Lowercase cho việc đặt tên database, tên bảng, tên cột ..
Ví dụ : name, age.
- Sử dụng dấu
_ khi nối các từ, điển hình như snake case.
Ví dụ : first_name, last_name.
- Dùng tiếng anh để đặt tên, tên có tính tự giải thíc,tránh việc viết tắt gây khó hiểu cho người đọc.
Ví dụ : nên đặt tên middle_name thay vì mid_nm.
- Trong 1 số trường hợp từ quá dài, có thể sử dụng từ viết tắt phổ biến.
Nếu cảm thấy chưa rõ ràng thì không nên dùng từ viết tắt.
Ví dụ: Internationalization và localization viết tắt thành i18n and l10n
- Không dùng từ khóa MySql và kiểu dữ liệu để đặt tên.
Ví dụ: add, after, …
- Tên cột không cần thêm các tiền tố không cần thiết.
Ví dụ: Tên bảng
posts không đặt posts_title mà chỉ cần title
- Khi đánh Indexes thì cần đặt tên rõ ràng, bao gồm cả tên bảng và tên cột được đánh index
- Các trường chỉ có 2 trạng thái TRUE/FALSE hoặc YES/NO thì nên thêm prefix
is_
Ví dụ: is_active, is_admin
- Đặt tên table bằng tiếng anh ở dạng số nhiều (thêm s, es, …)
Ví dụ: users, categories, cities
Đặt tên cho các khóa
- Chỉ có 1 khóa chính đặt tên
id
- Khóa ngoài được kết hợp từ tên bảng được tham chiếu đến và tên của trường được tham chiều.
Ví dụ: user_id , room_id
- Đối với quan hệ nhiều nhiều, tạo bảng thứ 3 được đặt tên được kết hợp từ tên của bảng thứ nhất ở dạng số ít và
tên của bảng thứ 2 ở dạng số ít. Có 2 khóa chính, khóa chính thứ nhất là
id của bảng thứ nhất được đặt tên theo quy tắc đặt tên khóa ngoài,
khóa chính thứ 2 là id của bảng thứ 2 được đặt tên theo quy tắc đặt tên khóa ngoài.
Ví dụ: bảng articles và bảng categories được liên kết với nhau qua bảng thứ 3 article_category có 2 khóa chính là
article_id và category_id.
Thay đổi thông tin
- Khi thêm mới, sửa thì lưu thời gian thay đổi vào 2 trường
created_at và updated_at
- Trong trường hợp không xóa vật lý mà chỉ xóa logic thì lưu thời gian xóa vào trường
deleted_at