Mẫu bạn đang mô tả thường được gọi là " vụ nổ bộ phận " hoặc " hóa đơn vật liệu ". Nó là một phần của đồ thị và phần cây trong nghiên cứu cấu trúc dữ liệu. Bản chất của giải pháp là nhận ra rằng bất kỳ "sản phẩm" nhất định nào cũng có thể được tạo thành từ các "sản phẩm" khác. Thiết kế sau đó là một cấu trúc mạng trong đó có một Product
bảng có một hàng cho mỗi sản phẩm - cho dù nó được tạo thành từ các sản phẩm khác hay không, và sau đó một Product Component
bảng có một hàng cho mỗi sản phẩm được tạo thành từ các sản phẩm khác và mỗi sản phẩm tương ứng là một thành phần của sản phẩm đó. Trong trường hợp của bạn, mỗi sản phẩm có một mức giá. Vì vậy, bạn sẽ có một cái gì đó như thế này
Product
-----------------------------------
|Name |Price |
-----------------------------------
|Orange |1 |
|Apple |1.20 |
|Fruit Package |3.80 |
-----------------------------------
Product Component
----------------------------------------------------------
|Product |Contains |Quantity|
----------------------------------------------------------
|Fruit Package |Orange |2 |
|Fruit Package |Apple |2 |
----------------------------------------------------------
Thiết kế này thích hợp hơn với một bảng duy nhất có liên kết đệ quy vì nó tách biệt rõ ràng hai loại thực thể - nút và liên kết. Trong trường hợp của chúng tôi, các sản phẩm là các nút và các thành phần sản phẩm là các liên kết.
Trong khi thiết kế mạng là một cấu trúc phổ biến, truy vấn nó là vấn đề vì khi điền đầy đủ, nó là một cấu trúc đệ quy có độ sâu khác nhau. Sức mạnh công nghiệp DBMS 'như Oracle và SQL Server có các yếu tố ngôn ngữ đặc biệt (CTN đệ quy của Oracle và CTE đệ quy của SQL Server) để hỗ trợ cho việc khai báo truy vấn. Do bạn đang sử dụng File Maker Pro mà tôi biết rất ít, bạn có thể không có các cấu trúc ngôn ngữ như vậy để trợ giúp và có thể phải viết mã thủ tục để truy cập mạng. Tuy nhiên, vấn đề này có thể được giảm bớt nếu mạng trở nên có độ sâu cố định - giả sử mọi sản phẩm đều không có thành phần hoặc một cấp độ của thành phần. Dưới đây là một số tài liệu tham khảo liên quan đến cấu trúc mạng trong thiết kế cơ sở dữ liệu:
- Các vấn đề thực tế trong quản lý cơ sở dữ liệu - Fabian Pascal . Chương 7 cung cấp lời giải thích tốt nhất và dễ hiểu nhất mà tôi đã tìm thấy.
- Cây và phân cấp của Joe Celko trong SQL cho Smarties, Ấn bản thứ hai . Đây là toàn bộ cuốn sách về chủ đề cụ thể theo tiêu chuẩn SQL.
- Mô hình mô hình doanh nghiệp - David Hay . Một cuốn sách về các mẫu chung cho tất cả các tổ chức (không may là Sơ đồ ER được trình bày trong UML nhưng có thể khắc phục được) có một số ví dụ về cấu trúc mạng.