Home » TechNote » Một vài Best Practices khi thiết kế Database

Một vài Best Practices khi thiết kế Database

best practice db design

best practice db design



Khi thực hiện một dự án Web Application, việc đầu tiên chúng ta hay nghĩ đến là việc thiết kế database làm sao cho hợp lý. Dưới đây mình xin giới thiệu với các bạn một vài best practices từ kinh nghiệm của bản thân và từ những tài liệu đã đọc được về cách thiết kế database :

1. Đặt tên cho bảng :

Tên bảng cần dễ hiểu và đoán được mục đích lưu trữ của bảng, đồng thời sử dụng kí chữ hoa ở đầu tên

Ví dụ : AdReport, CampaignGroupReport , chúng ta không nên đặt adreport,campaigngroupreport hoặc report

2. Đặt tên số ít

Chúng ta nên đặt tên số ít ví dụ : CampaignGroupReport, không cần thiết phải đặt tên CampaignGroupReports

3. Không sử dụng dấu cách trong tên bảng

Ví dụ : nên sử dụng CampaignGroupReport thay vì [Campaign Group Report]

4. Sử dụng tên bảng gắn với ID là tên của trường Primary Key nếu có thế

Ví dụ : CampaignGroupReportID

5. Sử dụng kiểu Boolean để lưu giá trị yes/no và tên trường bắt đầu bằng Is

Ví dụ : IsEnabled

6. Add trường Audit để có thể biết rằng ai tạo thêm row và khi nào, ai sửa row và khi nào

7. Sử dụng indexes để tăng tốc độ queries, với việc sử dụng Profile Analyser

8. Sử dụng nvarchar để đảm bảo tất cả các ngôn ngữ được hỗ trợ

9.Sử dụng varchar(max) khi thực sự cần thiết và nên tránh sử dụng ntext

10. Chia nhỏ bảng nếu có thể để tăng tính linh động và mềm dẻo

Ví dụ : Đối với một bảng thông tin khách hàng như sau
Customers
CustomerID
CustomerName
Payment01
Payment02
Payment03
Payment04
Payment05
Cách tốt nhất nên chia nó thành 2 bảng gồm
Customers
CustomerID
CustomerName

Payments
PaymentID
CustomerID
PaymentNumber
Việc làm này sẽ :

+ Giảm dung lượng lưu trữ, vì khách hành có thể sẽ không bao giờ điền hết 5 trường Payment01,Payment02,..Payment05 nếu sử dụng bảng ban đầu ta phải lưu rất nhiều dữ liệu NULL

+ Làm tăng tính mềm dẻo của hệ thống, nếu sau này hệ thống có thể có thêm nhiều hình thức thanh toán khác, thì cũng không cần phải sửa lại bảng để thêm trường mới

 

Mình xin dừng lại ở con số 10 cho đẹp :), chắc sẽ có rất rất nhiều những best practices khi thiết kế database chúng ta cũng có thể đọc nó trong quyển Design Database của Apress