В приложении есть заказ, а в заказе могут быть предметы.Для этого у нас были таблицы базы данных, подобные следующим.
Table 1 - T_ORDER(pk_order_id, order_no, date)
Table 2 - T_ORDER_ITEM (pk_order_itemid, fk_order_id, ean, quantity, price)
Теперь мы должны поддержать случай, когда в заказе может быть элемент пакета, то есть один элемент пакета содержит более одного реального элемента.У связанного предмета будет все свойство, которым может обладать обычный предмет, например, ean, количество, цена.
В основном комплектация - это виртуальная группа из одного или нескольких реальных предметов, но она может иметь свойство, такое как реальный предмет, например, количество - так что пользователь может разместить заказ более чем на один такой комплект, например, для идентификации, цене, он может иметьцена, включая весь реальный предмет в комплектеи каковы преимущества и недостатки одного перед другим, и какие моменты я должен учитывать при выборе одного из них?
Option 1 - New tables for bundle and bundle item
In addition of above two tables , we add two new tables like
T_ORDER_BUNDLE(pk_order_bundle_id, fk_order_id, ean, quantity, price
T_ORDER_BUNDLE_ITEM (pk_order_bundle_itemid, fk_order_bundle_id, ean, quantity, price)
Option 2 - New table to store bundle and use existing table for item
T_ORDER_BUNDLE(pk_order_bundle_id, fk_order_id, ean, quantity, price
Just add new column like fk_order_bundle_id in T_ORDER_ITEM table.
Option 3 - New table to store sub items of an item
Bundle item can be stored in existing T_ORDER_ITEM table.
New table - T_ORDER_ITEM_SUBITEM(pk_order_item_subitem, fk_order_itemid, ean, quantity, price)
Примечание: - У нас нет мастер-таблицы для предметов.Таблица T_ORDER_ITEM содержит все данные товара и отношение к заказу.В качестве заказа можно принять любой товар, и у нас нет фиксированного списка товаров для продажи.