Дизайн базы данных и классы сущностей корзины покупок - PullRequest
0 голосов
/ 07 сентября 2018

Мне нужна помощь для проектирования базы данных и класса сущностей.

У нас есть продукты, продаваемые в разных ресторанах. Каждый ресторан имеет свою цену продукта. это таблица store_product.

У клиента есть корзина для покупок в ресторане. Заказчик может добавить товар в корзину для ресторанов.

У меня такой дизайн базы данных: я не знаю лучшего решения для продукта в корзине.

Я не уверен: правильна ли связь между таблицей store_product и customer_order store_product или нет. И это OneToMany или OneToOne ассоциация? И что должно быть CascadeType в классе сущности. Благодарю. вот мой дизайн базы данных: дизайн базы данных

ЗАКАЗЧИК У клиента может быть n адресов.

CUSTOMER_ADDRESS Столбцы: customer_address_id PK, customer_id FK, address_id FK, имя (если адрес доставки отличается от customer_name)

Товар Товар не имеет цены. Каждый магазин имеет свою цену.

STORE Магазин может добавить цену к продукту

STORE_PRODUCT есть цена со скидкой store_id (FK), product_id (FK). store_id и product_id являются составным первичным ключом

CUSTOMER_STORE_ORDER Его заказ или корзина покупателя в магазине (состояние = 1 - состояние корзины покупок = 2 - состояние оплаченного заказа = 3 - доставленный заказ. некоторые столбцы (order_id PK, customer_id FK, customer_order_state_id FK, store_id FK, bank_account_id, credit_card_id FK, customer_address_id, total_order_price

customer_order_store_product Товар в корзине покупок. у него есть количество купленного продукта и это Forainkeys: order_id, store_id и product_id (это FKs составные PK

проблема в связи между store_product и customer_order_store_product

Теперь классы сущностей: StoreProduct:

@Entity

@ Table (имя = "store_product") Открытый класс StoreProduct реализует Сериализуемый {

private BigDecimal price;

@Column(name="discount_price")
private BigDecimal discountPrice;

//bi-directional many-to-one association to Product
@Id
@ManyToOne
@JoinColumn(name = "product_id")
private Product product;

//bi-directional many-to-one association to Store
@Id
@ManyToOne
@JoinColumn(name = "store_id")
private Store store;

...

}

Неправильное назначение в CustomerOrderStoreProduct

@Entity

@ Table (имя = "customer_order_store_product") открытый класс CustomerOrderStoreProduct реализует Serializable {

private static final long serialVersionUID = 1L;

//bi-directional many-to-one association to CustomerStoreOrder
@Id
@ManyToOne
@JoinColumn(name = "order_id")
private CustomerStoreOrder order;

//bi-directional many-to-one association to Product
@Id
@ManyToOne
@JoinColumn(name = "product_id")
private Product product;


private Integer quantity;

...

}

...