Database
 sql >> Baza danych >  >> RDS >> Database

Elastyczne i łatwe w zarządzaniu projekty zestawień materiałowych (BOM)

Wzorzec projektowy zestawienia materiałów jest zwodniczo prosty, ale niezwykle potężny. W tym artykule przedstawimy przykład, znany specjalistom IT, który być może nie pasuje do wzorca BOM. Wprowadzi również koncepcje, które pokażą, jak uczynić struktury BOM bardziej elastycznymi i łatwiejszymi w zarządzaniu.

Krótkie podsumowanie zestawienia komponentów

zestawienie materiałów ma swoje korzenie w produkcji. Jest to lista surowców, podzespołów, zespołów pośrednich, podzespołów, części oraz ilości każdego z nich potrzebnego do wytworzenia produktu końcowego.

W swojej najprostszej postaci klasyczna struktura BOM wygląda tak:




Jednak ten sam rodzaj struktury może być używany do wielu różnych celów , które wahają się od czegoś ściśle hierarchicznego i ściśle związanego do czegoś dość płaskiego i luźno związanego. Więcej informacji na temat struktury BOM można znaleźć w tym artykule.

Schematy – codzienny przykład

Wierzcie lub nie, ale tryplet typu klasa-atrybut i tryplet typu tabela-kolumna również są zgodne ze wzorcem BOM. Poniższy fizyczny model danych zawiera podstawowe tabele słownika danych.





Tabela Opis
dd_attribute Unikalny atrybut, niezależny od jakiejkolwiek implementacji.
dd_attr_instance Instancja atrybutu. Instancja ma dwie różne relacje:
1) Klasa, do której należy, która może być obiektem logicznym lub fizycznym. Instancja jest unikalna dla tej klasy.
2) Typ danych, który może być typem natywnym lub innym typem klasy.
dd_class Klasa lub obiekt w sensie ogólnym – rzeczywista implementacja podana przez class_type – który ma zestaw atrybutów.


Słownik danych lub repozytorium metadanych jest zdefiniowane w IBM Dictionary of Computing jako "scentralizowane repozytorium informacji o danych, takich jak znaczenie, relacje z innymi danymi, pochodzenie, użycie i format".

Rozważmy teraz następującą definicję schematu XML (XSD) dla aplikacji Java:



Definiuje złożone typy XSD, które mają atrybuty jednego z natywnych typów XML – np. ciąg , NMTOKEN , anySimpleType – lub inne złożone typy.

Aby rozpocząć wypełnianie słownika danych dla powyższego XSD, najpierw musimy wprowadzić natywne typy danych XML jako klasy :


nazwa_klasy stereotyp
wartość logiczna Natywny
data Natywny
dataGodzina Natywny
ciąg Natywny
wersja Natywny
NMTOKEN Natywny
anySimpleType Natywny


Mamy teraz wszystko, czego potrzebujemy, aby zacząć zapełniać nasz słownik danych. W poniższym przykładzie pokazano tylko tyle, aby w pełni zdefiniować ConnectionConfigType typ złożony.


dd_attribute of_class (przez dd_attr_instance) type_class (przez dd_attr_instance)
attr_name nazwa_klasy stereotyp nazwa_klasy stereotyp
klucz Typ właściwości XSDcomplexType ciąg Natywny
wartość Typ właściwości XSDcomplexType ciąg Natywny
Właściwość Typ konfiguracji połączenia XSDcomplexType Typ właściwości XSDcomplexType
NazwaKlasy Kierowcy Typ konfiguracji połączenia XSDcomplexType ciąg Natywny
użytkownik Typ konfiguracji połączenia XSDcomplexType ciąg Natywny
hasło Typ konfiguracji połączenia XSDcomplexType ciąg Natywny
nazwa_puli Typ konfiguracji połączenia XSDcomplexType ciąg Natywny


Zwróć uwagę, jak typ danych ConnectionConfigType.Property atrybut jest innym typem złożonym, PropertyType . W XML typy złożone mogą składać się z innych typów złożonych. Nierzadko można znaleźć zagnieżdżone typy złożone w dokumentach XML, zwłaszcza w WSDL.

I co z tego? ty pytasz. Cóż, biorąc pod uwagę, że XML ma strukturę hierarchiczną, a typy złożone można ponownie wykorzystać, XML naturalnie podąża za wzorcem BOM .

A to zjawisko nie ogranicza się do XML. Inne schematy, takie jak te dla JSON i obiektowo-relacyjnych baz danych, również są zgodne z wzorcem BOM .

Włączenie elastyczności w zestawieniu komponentów

W klasycznej strukturze BOM produktu trzy bardziej szczegółowe koncepcje są zaangażowane w modelowanie tego, co dzieje się w świecie rzeczywistym. To są alternatywy , warianty i poprawki .

alternatywa jest substytutem określonego przedmiotu. Na przykład producent samochodów może mieć różnych dostawców niektórych produktów. W praktyce oznacza to, że producent może uzyskać równoważne pompy paliwowe z wielu źródeł. Zazwyczaj klient nie ma takiej możliwości, ale daje to producentowi elastyczność.

Użyliśmy pomp paliwowych jako elementów w przykładowej tabeli poniżej, z Bosch i Lucas jako alternatywami. Posiadanie alternatywnej pompy paliwowej oznacza, że ​​jedna i tylko jedna zespołów zostanie wybranych podczas produkcji silnika.


Element Alternatywna
Rodzic Dziecko Ilość
V6 (Złożenie) Pompa paliwa (alternatywna) 1
Pompa paliwa (alternatywa) Pompa Bosch (zespół)
Pompa paliwa (alternatywa) Pompa Lucasa (montaż)


Wariant to inny rodzaj towaru, ale tym razem to klient dokonuje wyboru. Nabywca samochodu może wybrać różne wersje nadwozia – trzydrzwiowe, pięciodrzwiowe lub kombi (kombi lub kombi). Mogą również wybrać jeden z dwóch różnych typów silnika – V6 lub V8. W naszym przykładzie kupujący musi dokonać wyboru jednego i tylko jednego zespołu poniżej wariantu.


Element Wariant
Rodzic Dziecko Minimalny wybór Maksymalny wybór
Samochód (montaż) Ciało (Wariant) 1 1
Korpus (Wariant) 3 drzwi (montaż)
Korpus (Wariant) 5 drzwi (montaż)
Korpus (Wariant) Posiadłość (montaż)
Samochód (montaż) Silnik (wariant) 1 1
Silnik (wariant) V6 (montaż)
Silnik (wariant) V8 (montaż)


W innych dziedzinach liczba wyborów jest bardziej zróżnicowana. Weźmy za przykład edukację. Aby uzyskać konkretną kwalifikację, student musi zaliczyć określoną liczbę grup. Dla każdej grupy mogą wybierać spośród kilku modułów.

Załóżmy na przykład, że uczeń musi ukończyć dwie grupy, aby uzyskać dyplom. Mogą wybrać dwa moduły z listy sześciu, aby uzupełnić pierwszą grupę. Następnie muszą wybrać trzy moduły z pięciu, aby uzupełnić drugą grupę. (Jeśli jest to sektor, który chciałbyś zobaczyć bardziej szczegółowo, elastyczny projekt został opublikowany przez brytyjską Radę Standardów Informacyjnych).

Oba powyższe przykłady są zgodne z prostym wzorem pokazanym poniżej. Ten wzór nadaje się do struktur, które są dość statyczne. Warianty i alternatywy są wstawiane do hierarchii, aby wskazać, że należy dokonać jakiegoś wyboru z pozycji znajdujących się bezpośrednio pod nimi.



Tam, gdzie rzeczy mają tendencję do zmian w czasie, poniższy wzór jest bardziej elastyczny i łatwiejszy do utrzymania. Z drugiej strony przechodzenie (lub nawigacja) jest nieco bardziej nieporęczne.



Po przekształceniu powyższego modelu logicznego w model fizyczny, wszystko zaczyna wyglądać tak:




W tym modelu element jest albo niepodzielną częścią, albo zespołem. Części i zespoły są zorganizowane w hierarchie. Jednak alternatywy , warianty i poprawki mają swoje własne, odrębne relacje, ponieważ z czasem ulegają one znacznym zmianom. Minimalizuje to reorganizację hierarchii.

Na przykład producenci samochodów nieustannie rozwijają swoje samochody. Wynika z tego, że alternatywy części zmieniają się w czasie, podobnie jak warianty udostępniane klientowi. Gdy w zespole nastąpi zmiana, zespół zostanie poprawiony. Rewizja wskazuje historię zmian elementu. Rozważ ten przykład:


Numer części Wersja Poprzedzający Następny
123456-1 1 123456-1 123456-1
123456-2 2 123456-1 123456-2
123456-3 3 123456-2 123456-3
123456-4 4 123456-1 123456-4
123456-5 5 123456-2, 123456-3 123456-5


Opis powyższej tabeli wygląda następująco:element ma przynajmniej jedną wersję – swoją oryginalną wersję. Oryginalna wersja produktu służy do tworzenia drugiej wersji. Drugi był dalej rozwijany, aby stworzyć wersję trzecią, która nie wyszła. Dlatego inżynierowie poprawili oryginalną wersję, tworząc wersję czwartą. Po szeroko zakrojonych testach okazało się, że to również nie jest idealne. Dlatego inżynierowie postanowili wziąć aspekty drugiej i trzeciej wersji i stworzyć wersję piątą, produkt końcowy.

Jeśli spojrzysz na poprzednie i kolejne klucze, zobaczysz, dlaczego historia zmian wymaga wielu do wielu związek między pozycjami a poprawkami. Ta sama zasada dotyczy produktów, alternatyw i wariantów.

Ostatnie słowo o wzorze Listy materiałów

Mam nadzieję, że ta seria artykułów pomogła Ci rozpoznać wzorzec BOM. Gdy pojawi się w Twoich projektach, zrozumiesz, jak najlepiej zamodelować go w konkretnej domenie.

Proszę jednak zauważyć, że ścisła struktura zestawienia materiałów ma swoje wady i zalety. Pro:hierarchie są wielokrotnego użytku. Wada:hierarchie są wielokrotnego użytku. W Twoim przypadku może to być złe lub nie, ale z pewnością warto o tym pamiętać.

Dobrą rzeczą jest to, że hierarchii nie trzeba utrwalać w kamieniu. Używając alternatyw, wariantów i rewizji, możesz modelować domeny, w których istnieją opcje, gdzie należy zachować historyczną pozycję i ostatecznie jedyną stałą jest zmiana.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. OGG-01224 Adres już w użyciu

  2. Czym jest problem roku 2038?

  3. Czym jest schemat w SQL i jak go stworzyć?

  4. Rodzaje SQL JOIN

  5. SQL, tworzenie tabeli