@startuml hide circle namespace BaseData { class Country { alpha2 alpha3 numeric name } class WineType { id name } class WineTypeAttribute { id name short } class QualityLevel { } class Region { id name } class Area { id name } class VineyardArea { number name } class Municipality { number name } class Reed { number name } class Bank { country bankCode fullName name street postalCode city telNr emailAddress website } Country -- Bank Country -- Region Region - Area Area - VineyardArea VineyardArea - Municipality Municipality - Reed } namespace Data { class Member { number givenName familyName contactInformation billingAddress } class Branch { } class AreaCommitment { } class ContactInformation { country postalCode city street telNr mobileNr emailAddress } class BillingAddress { name country postalCode city street } class BankAccount { country bankCode accountNumber name } class Delivery { date branchId number time } class DeliveryPart { delivery weight gradation qualityLevel wineType } BankAccount -- BaseData.Bank Member -- Branch Member -- AreaCommitment Member -- ContactInformation Member -- BillingAddress Member -- BankAccount Member -- BaseData.Country BillingAddress -- BaseData.Country ContactInformation --- BaseData.Country AreaCommitment -- BaseData.WineType AreaCommitment -- BaseData.WineTypeAttribute AreaCommitment -- BaseData.Municipality AreaCommitment -- BaseData.Reed Delivery -- Member Delivery -- Branch Delivery - DeliveryPart DeliveryPart -- BaseData.QualityLevel DeliveryPart -- BaseData.WineType DeliveryPart -- BaseData.WineTypeAttribute } @enduml