[CSDL] 20 lưu ý khi thiết kế Cơ Sở Dữ Liệu

Thảo luận trong 'Công nghệ thông tin' bắt đầu bởi Trần Văn Cường, 13/12/16.

  1. 13/12/16
    Trần Văn Cường

    Trần Văn Cường I love CNTT Thành viên BQT Designed Registered

    Tham gia ngày:
    8/11/15
    Bài viết:
    2,335
    Đã được thích:
    11
    Giới tính:
    Nam
    Nghề nghiệp:
    Sinh Viên
    Nơi ở:
    Trường Mỏ - Quảng Ninh
    Web:


    Sau đây là những lưu ý mình góp nhặt được từ thực tế làm việc và internet.

    1. Đặt tên rõ ràng và thống nhất cho tên bảng và cột.

    ex: School, StudentCourse…

    2. Tên bảng nên ở dạng số ít vì bảng đại diện cho danh sách các thực thể, thật sự không cần thiết phải ở số nhiều.

    3. Không nên đặt tên có chứa ký tự khoảng cách trong tên bảng và cột. Vì khi muốn truy cập vào tên bảng bạn phải thêm cặp ngoặc đơn.

    ex: SELECT * FROM StudentCourse – thì luôn luôn tốt hơn
    SELECT * FROM “Student Course”


    4. Sử dụng tiếp đầu ngữ là cần thiết nhưng không dùng tiếp đầu ngữ hoặc vị ngữ không rõ ràng cho tên bảng như: TblSchool, SchoolTable …

    5. Mã hóa các cột có chứa dữ liệu nhạy cảm như cột password, accountNumber… Chỉ giải mã chúng trong ứng dụng khi được yêu cầu

    6 Dùng kiểu số cho các cột id (int, bigint).

    7. Chỉ chọn những cột có kiểu số nguyên để đánh index. Các kiểu char, varchar sẽ gặp vấn đề về hiệu năng.

    8. Dùng kiểu “bit” cho những cột luận lý. Những cột này luôn luôn bắt đầu bằng “is”.

    ex: isDeleted, isConfidential

    9. Không nên truy cập database với vai trò (role) là admin với những tác vụ thông thường.

    10. Tránh sử dụng “SELECT *” khi thật sự không cần thiết. Dùng “SELECT column1,column2 “ để đạt hiệu năng tốt hơn.

    11. Nên dùng ORM framework (Hibernate, iBatis…) nếu ứng dụng thuộc loại lớn.

    12. Phân vùng những bảng hiếm hoặc không thường xuyên truy cập tới ổ đĩa vật lý khác để đạt hiệu năng tốt hơn.

    13. Với những database có rất nhiều dữ liệu nên sử dụng disaster recovery, failover clustering, auto backups, replcation… để đảm bảo hệ thống chạy ổn định và an toàn dữ liệu.

    14. Dùng ràng buộc (foreign key, check, not null) để đảm bảo tính toàn vẹn dữ liệu.

    15. Thiếu tài liệu cho database thật sự rất có hại. Tài liệu hóa khi thiết kế database với sơ đồ thực thể quan hệ (ER schemas). Nên thêm comment cho trigger, stored procedures, alter script …

    16. Sử dụng index cho những bảng thường xuyên sử dụng và có dữ liệu lớn. Có thể sử dụng những công cụ phân tích để quyết định sử dụng index trên những cột nào.

    17. Máy chủ cơ sở dữ liệu và máy chủ web nên đặt ở hai mảy chủ khác nhau.

    18. Những cột dữ liệu dạng hình ảnh và BLOB nên đặt ở một bảng quan hệ khác để đảm bảo hiệu năng sử dụng.

    19. Chuẩn hóa cơ sở dữ liệu là cần thiết. Nếu không chuẩn hóa ta có thể gặp những vấn đề về tính toàn vẹn của dữ liệu và gây trùng lắp thông tin. Chuẩn hóa ở mức cao gây ảnh hưởng đến hiệu năng vì cần join nhiều bảng.

    20. Dành thêm thời gian cho khâu thiết kế và tối ưu thiết kế cơ sở dữ liệu.
     


    Bình Luận Bằng Facebook