Tanımladığınız desene genellikle " parça patlaması " veya " malzeme listesi " denir . Veri yapılarının incelenmesinde grafikler ve ağaçlar kısmının bir parçasıdır . Çözümün özü, verilen herhangi bir "ürünün" diğer "ürünlerden" oluşabileceğini anlamaktır. Tasarım daha sonra Product
, her ürün için bir satır içeren bir tablonun bulunduğu bir ağ yapısıdır - diğer ürünlerden yapılmış olsun ya da olmasın, ve sonra Product Component
diğer ürünlerden oluşan her ürün için bir sıra olan bir tablo ve o ürünün bir bileşeni olan karşılık gelen her ürün. Sizin durumunuzda, her ürünün bir fiyatı vardır. Yani böyle bir şey olurdu
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 |
----------------------------------------------------------
Bu tasarım, gerçekten iki varlık türünü - düğümleri ve bağlantıları - temiz bir şekilde ayırdığı için yinelemeli bir ilişkilendirmeye sahip tek bir tabloya tercih edilir. Bizim durumumuzda, ürünler düğümlerdir ve ürün bileşenleri bağlantılardır.
Ağ tasarımı ortak bir yapı olmakla birlikte, sorgulama tamamen doldurulduğunda değişken derinlikte özyinelemeli bir yapıdır. Oracle ve SQL Server gibi endüstriyel güç DBMS'leri, sorguyu bildirimsel hale getirmeye yardımcı olmak için özel dil öğelerine (Oracle'ın CONNECT BY ve SQL Server'ın özyinelemeli CTE) sahiptir. Hakkında çok az şey bildiğim File Maker Pro kullandığınız düşünüldüğünde, bu tür dil yapılarına sahip olmayabilirsiniz ve ağda gezinmek için yordam kodu yazmanız gerekebilir. Bununla birlikte, ağın sabit derinlikte olduğu ortaya çıkarsa, her ürünün ya bir bileşeni ya da bir bileşen seviyesi olduğunu varsayalım. Veritabanı tasarımındaki ağ yapıları ile ilgili bazı referanslar:
- Veritabanı Yönetiminde Pratik Konular - Fabian Pascal . Bölüm 7, bulduğum en iyi ve en anlaşılır açıklamayı sunar.
- Joe Celko'nun Smarties için SQL'deki Ağaçları ve Hiyerarşileri, İkinci Baskı . Bu, SQL standardına özgü konuyla ilgili tüm bir kitaptır.
- Kurumsal Model Kalıpları - David Hay . Tüm kuruluşlar için ortak olan kalıplar hakkında bir kitap (maalesef ER Diyagramları UML'de sunulmaktadır, ancak üstesinden gelinebilir) ağ yapılarının birkaç örneği vardır.