0

これは私のサンプルクラス図です

cls_Invoice = {InvoiceID:int, InvoiceDate:Date, InvoiceProduct: cls_Products };

cls_Products = { ProductID:int, StockQuantity:double , Price:double};

DB テーブル

Invoice = { InvoiceID, InvoiceDate}; 商品 = {商品 ID、在庫数、価格};

1 請求書には多くの製品があります 1 製品は多くの請求書に含まれている可能性があるため、最終的には以下に示すように ER デザインにリンクがあります

Invoice_Products = {InvoiceID, ProductID, Qty, Price}

しかし、クラス図を描く上でわからない Qty と Price という別の 2 つのプロパティがあります。アドバイスをお願いします。

4

3 に答える 3

3

UML クラス図には、Invoice と Product の 2 つのクラスがあります。Invoice には InvoiceID と InvoiceDate の 2 つの属性があり、Product には ProductID、StockQuantity、Price の 3 つの属性があります。2 つのクラスの間には、両端で多重度が 1..* の関連付けが必要です。

于 2012-02-02T12:59:05.863 に答える
1

私はショッピングアプリにあまり詳しくありませんが、考えてみると、次の点が思い浮かびます。

販売されるアイテム/製品には、アイテム/製品とは別の概念が必要です。なぜなら、「製品のコンセプト」は「製品に何​​ができるか」とは独立していなければならないからです。たとえば、製品を販売することは、製品自体と同じ概念ではありません。したがって、orderItem などの別のクラスを使用することもできます。

class product {
    Long productId
    String productName
    ...
} 

class orderItem{
      Product soldProduct;
      Invoice itsInvoice;

      public Invoice getItsInvoice();

}

class Invoice {
    Long invoiceNumber;
    List<OrderItem> orderItem;

}

これを行うと、各注文項目は 1 つの請求書にのみ属しますが、請求書には多くの注文項目が含まれる場合があります。したがって、ivoice と注文アイテムの間には 1 対多の関係があり、oreitem と製品の間には 1 対 1 の関係があります。

請求書と製品の 2 つのエンティティのみでそれを行う場合でも、これは「製品」と「製品の販売」の概念を 1 つのエンティティに結合することを意味しますが、請求書と製品の関係は 1 対多ではありません。多対多。なぜなら、両者の関係は「商品の販売」を通じてあるからです。その場合、「販売された製品」は 1 つの請求書にのみ属します。

しかし、最初のアプローチは私には良いようです。

于 2012-02-03T17:38:15.907 に答える