Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Mong mọi người giúp tạo CSDL Quản lý thiết bị
#11
Cũng xin trao đổi thêm về vấn đề thiết kế CSDL để tôi cũng như các ace mới rộng đường học hỏi.
Tôi thì chỉ rãnh rỗi ngồi tập tành viết ứng dụng nhỏ cho thõa đam mê thôi chứ chưa có làm cái phần mềm nào lớn với cái database mấy trăm ngàn record cả nên cũng chưa trải nghiệm tốc độ khi thiết kế table và relationship.
Vấn đề bàn luận ở trên có thể tóm gọn trong cái ý là: nên sử dụng left join nhiều table hay gộp chung vô 1 table với nhiều cột, chuẩn hoá hay không chuẩn hoá (có cố ý).
Về cơ bản tôi nghĩ đối với người mới thì phải biết cách chuẩn hoá CSLD đã rồi mới đi tới tinh chỉnh CSDL theo cách không chuẩn hoá (denormalized) có cố ý, giống như Trương Vô Kỵ phải học hết các chiêu Thái cực quyền rồi mới luyện tới mức quên hết không còn chiêu gì cả... 007 .
Việc chọn cách thiết kế chuẩn hoá, không chuẩn hoá hay kết hợp thì phải dựa vào thực tế CSDL và kinh nghiệm nên tôi cũng không nói phải chọn một vì mỗi cách sẽ có mặt lợi, mặt hại tuỳ CSDL và yêu cầu thực tế. Việc sử dụng Join table không phải luôn luôn là tốt và ngược lại. Ví dụ: (lý thuyết)
* Đối với CSDL chuẩn hóa: 
   - Mặt lợi là: 
     + Tránh dữ liệu bị dư thừa (lưu nhiều nơi).
     + Dễ bảo trì. Khi cần sửa, xóa, thêm cột... chỉ cần thực hiện trên 1 dòng, 1 table
     + VD: tblNhanVien có lưu mã phòng ban. tblPhongBan có mã PB, tên phòng ban, quản lý trên/dưới trực tiếp...Khi có thay đổi các thông tin phòng ban thì chỉ cần cập nhật trong tblPhongBan là đủ rồi.
   - Mặt không thuận lợi: là như bạn nói sẽ tốn RAM, CPU cho việc query join (trăm ngàn record).
* Đối với CSDL denormalized:
   - Mặt lợi: là tốc độ truy vấn.
   - Không lợi: là khi cần cập nhật phải cập nhật cho tất cả các dòng record, các table có lưu cùng 1 thông tin.
Do vậy theo tôi nghĩ việc chọn normalize, denormalize hay kết hợp tùy thuộc vào nhu cầu query dữ liệu nào trong form, trong ứng dụng, qui mô của ứng dụng cũng như kiến thức bản thân để tinh chỉnh CSLD. Tôi sẽ chọn join table cho các dữ liệu thường thay đổi và khi query cần ít join.
Trên đây là một số ý kiến cá nhân, các bạn đã kinh nghiệm qua thì cùng chia sẽ thêm.
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn huymcsa


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  [Help] Nhờ AE chỉ giúp phần import ODBC database với ạ Mr H 1 87 01-12-16, 05:19 PM
Bài mới nhất: maidinhdan
  [Hỏi] Thiết lập liên kết ngoài thanh872 0 60 19-10-16, 07:51 AM
Bài mới nhất: thanh872
  [Hỏi] Thiết lập CSDL theo phân cấp trangdv.pchg 1 124 18-10-16, 10:36 AM
Bài mới nhất: maidinhdan
Big Grin Giúp đổ đầy các dòng dưới nếu cùng số hóa đơn ledangvan 3 323 26-03-16, 01:01 PM
Bài mới nhất: ongke0711
Rainbow [Hỏi] Tạo quan hệ với các bản 9xconduongtoidi 2 301 25-03-16, 10:28 AM
Bài mới nhất: 9xconduongtoidi

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ