私は2つのテーブルを持っています: tblCustomer
, tblProduct
:
tblCustomer:
Id: Integer, auto-increament
Name: Varchar(30)
....
tblProduct
Id: Integer, auto-increament
Name: Varchar(50)
customerId: Integer
....
および 2 つのクラス: Customer
、Product
:
public class Product
{
private int id;
private int name;
/* Other stuffs */
}
public class Customer
{
private int id;
private String name;
private String phoneNumber;
/* get-set and others stuffs */
public static boolean add(Customer cus) {
/* This is for insert a customer to tblCustomer */
}
public boolean addProduct(Product pd) {
/* This is for insert a product to tblProduct with current customer Id */
}
}
顧客がアカウントを登録すると、次のように呼び出されます。
Customer cus = new Customer(/* ... */);
Customer.add(cus);
顧客が製品を購入するとき:
Product pd = new Product(/* ... */);
currentCustomer.addProduct(pd);
しかし、私の先生は、テーブルCustomer.addProduct
上で動作するため、OOAD (および OOP でさえ) では正しくないと言っていましたが、そうですか? tblProduct
この場合の良い設計は何ですか?
** 更新: ** 製品はまだ事前に定義されていません。顧客が製品を購入すると、ストアが作成して顧客に配送するため、同じ製品が 2 つ発生することはまれtblCustomerProduct
です。必要ですか?