Pola yang Anda gambarkan sering disebut " ledakan bagian " atau " bahan baku ". Ini adalah bagian dari grafik dan bagian pohon dalam studi struktur data. Inti dari solusi ini adalah untuk menyadari bahwa "produk" apa pun yang diberikan dapat terdiri dari "produk" lain. Desain kemudian merupakan struktur jaringan di mana ada Product
tabel yang memiliki baris untuk setiap produk - apakah itu terdiri dari produk lain atau tidak, dan kemudian Product Component
tabel yang memiliki baris untuk setiap produk yang terdiri dari produk lain dan setiap produk yang sesuai yang merupakan komponen dari produk itu. Dalam kasus Anda, setiap produk memiliki harga. Jadi Anda akan memiliki sesuatu seperti ini
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 |
----------------------------------------------------------
Desain ini lebih disukai daripada tabel tunggal dengan asosiasi rekursif karena memisahkan dengan rapi apa yang sebenarnya dua tipe entitas - node dan tautan. Dalam kasus kami, produk adalah simpul, dan komponen produk adalah tautan.
Sementara desain jaringan adalah struktur umum, permintaan itu bermasalah karena ketika diisi penuh itu adalah struktur rekursif dengan kedalaman yang berbeda-beda. Kekuatan industri DBMS 'seperti Oracle dan SQL Server memiliki elemen bahasa khusus (Oracle CONNECT BY dan SQL Server recursive CTE) untuk membantu dalam membuat kueri deklaratif. Mengingat Anda menggunakan File Maker Pro, yang saya tahu sedikit tentang, Anda mungkin tidak memiliki konstruksi bahasa untuk membantu dan mungkin harus menulis kode prosedur untuk melintasi jaringan. Namun masalah ini dapat diredakan jika jaringan ternyata memiliki kedalaman yang tetap - katakanlah setiap produk tidak memiliki komponen, atau satu tingkat komponen. Berikut adalah beberapa referensi yang berkaitan dengan struktur jaringan dalam desain basis data:
- Masalah Praktis dalam Manajemen Basis Data - Fabian Pascal . Bab 7 memberikan penjelasan terbaik dan paling mudah dipahami yang saya temukan.
- Pohon dan Hierarki Joe Celko dalam SQL untuk Smarties, Edisi Kedua . Ini adalah seluruh buku tentang topik khusus untuk standar SQL.
- Pola Model Perusahaan - David Hay . Sebuah buku tentang pola-pola umum untuk semua organisasi (sayangnya Diagram ER disajikan dalam UML tetapi itu dapat diatasi) ada beberapa contoh struktur jaringan.