@startuml hide circle namespace BaseData { class country { alpha2 alpha3 num name } class currency { id name symbol } namespace AT { class AT_bank { blz name street plz okz tel_nr fax_nr email_address website } class AT_bundesland { id short1 short2 name } class AT_gemeinde { gkz land_id name } class AT_ort { okz gkz name } class AT_plz { plz okz id name } AT_ort -> AT_gemeinde AT_plz --> AT_ort AT_gemeinde --> AT_bundesland AT_bank -> AT_plz AT_bank -> BaseData.bank AT_plz -> BaseData.postal_code AT_ort --> BaseData.origin AT_ort --> BaseData.grosslage } class postal_code { country id } class wine_variety { id name } class quality_level { id name from_oe to_oe } class origin { id name parent land_id } class bank { country bank_id } class grosslage { id name } class grosslage_origin { grosslage_id origin_id } grosslage_origin --> grosslage grosslage_origin -> origin bank --> country origin -> origin origin --> BaseData.AT.AT_bundesland } namespace Data { class member { mgnr branch_id given_name family_name year_of_birth join_date leave_date } class contact_information { mgnr postal_code street tel_nr mobile_nr email_address } class branch { id name } class area_commitment { AT_ort parzellen mgnr reed_id area wine_variety wine_attribute from_year to_year } class billing_address { mgnr name postal_code street } class bank_account { mgnr country bank_id account_nr name } class wine_attribute { id name short } class season { year start_date end_date currency } class reed { id grosslage_id name } reed -> BaseData.AT.AT_ort bank_account --> BaseData.bank member --> branch member <-- area_commitment member <-- billing_address member <-- contact_information member <-- bank_account billing_address --> BaseData.postal_code contact_information --> BaseData.postal_code area_commitment --> BaseData.wine_variety area_commitment --> wine_attribute area_commitment --> BaseData.AT.AT_ort area_commitment --> reed area_commitment --> BaseData.wine_variety season --> BaseData.currency } namespace Season { class delivery { year nr mgnr date time branch_id } class delivery_part { year delivery_nr part_nr weight gradation quality_level wine_variety } class modifier { year id name value } class delivery_part_modifier { year delivery_nr part_nr modifier_id } delivery --> Data.season modifier --> Data.season delivery --> Data.member delivery --> Data.branch delivery <- delivery_part delivery_part --> BaseData.quality_level delivery_part --> BaseData.wine_variety delivery_part --> Data.wine_attribute delivery_part_modifier --> modifier delivery_part_modifier --> delivery_part } @enduml