Tôi đang trong quá trình thiết kế cơ sở dữ liệu và tôi có suy nghĩ thứ hai về các quyết định thiết kế ban đầu của mình ...
Các loại sản phẩm như sau ... Mô hình, bộ phận, bộ dụng cụ thay thế và các tùy chọn.
Tùy chọn A (thiết kế đầu tiên): Tôi dự định có các bảng riêng biệt cho các loại sản phẩm trên. Tôi muốn nói rằng khoảng 75% các trường sẽ giống nhau trong mỗi bảng.
Tôi đã tạo từng loại sản phẩm dưới dạng các bảng riêng biệt do các liên kết tôi cần tạo giữa chúng. Chẳng hạn, một Model có thể có nhiều tùy chọn và một tùy chọn có thể có nhiều model. Một tùy chọn cũng có thể có nhiều phần và một phần có thể có nhiều tùy chọn ... và cứ thế ...
Tùy chọn B: Thay vì có các bảng riêng biệt, tôi có thể tạo một bảng có tên là Sản phẩm bao gồm mô hình, bộ phận, bộ dụng cụ thay thế và các tùy chọn. Tôi có thể có một trường được gọi là loại để phân biệt giữa mô hình, tùy chọn, v.v. Tôi cho rằng một mặt trái là một số trường sẽ không bao giờ được sử dụng (không có giá trị) cho một số loại sản phẩm nhất định. Tôi đoán đây là nơi "không thực hành tốt nhất" sẽ phát huy tác dụng ..
Tùy chọn B sẽ giảm đáng kể độ phức tạp của thiết kế db. Tôi cũng sẽ không phải lo lắng về việc tham chiếu một loạt các bảng khi rút dữ liệu cho các truy vấn ...