まず第一に、私はおそらく私が作るべき車、モデル、製造...テーブルがないことを知っていますが、それは今のところ問題ではありません。
私はすでにデータベースを作成しており、リレーショナルモデルは次のようになっていると言わなければなりません(重要なことに集中するために簡略化しました)が、これの概念(ドメイン)モデルを描く必要があります:
クライアント(clientID、名前、名前、電話)
住所(clientID、number、street、cityZipCode)
都市(cityZipCode、cityName)
訪問(clientID、visitDate、totalPrice)
サービス(serviceID、serviceName)
基準(criteriaName、size、measureUnit)
ServicePriceCriteria(serviceID、criteriaName、size、price)
VisitItem(clientID、visitDate、serviceID、criteriaName、size、quantity)
私の最大の問題は、1つのサービスが異なる基準に対して異なる価格を持つことができることをどのように提供するかでした。
つまり、トラックのオイル交換には15ユーロかかります。SUVの場合、同じサービスの費用は8ユーロです。他の例は、価格がホイールのサイズによって異なる場合です。14インチのホイールの場合、一部のサービスの料金は10ユーロで、17インチのホイールの場合の同じサービスの料金は15ユーロです。
したがって、最初の例では、 Service(123、'Oil Changes')、 Criteria('typeOfVehicle'、'Truck'、null)、 ServicePriceCriteria(123、'typeOfVehicle'、'Truck'、15)があります。
Service(123、'Oil Changes')、 Criteria('typeOfVehicle'、'SUV'、null)、 ServicePriceCriteria(123、'typeOfVehicle'、'SUV'、8)
2番目の例では、次のようになります。 サービス(124、「一部のサービス」)、 基準(「ホイールのサイズ」、「14」、インチ)、 ServicePriceCriteria(124、「ホイールのサイズ」、「14」、10)
サービス(124、「一部のサービス」)、 基準(「ホイールのサイズ」、「17」、インチ)、 ServicePriceCriteria(124、「ホイールのサイズ」、「17」、15)
あなたが私の考えを理解してくれることを願っています。私はあなたにこれが私の解決策でまったく受け入れられるかどうか尋ねたいと思いますか?そして、このデータベースのこの正しいドメインモデルは次のとおりです。