Я должен отслеживать запас отдельных деталей и комплектов (узлов) и не могу найти удовлетворительного способа сделать это. Пример поддельной и гиперупрощенной базы данных:
Table prod: prodID 1 prodName Flux capacitor prodCost 900 prodPrice 1350 (900*1.5) prodStock 3 - prodID 2 prodName Mr Fusion prodCost 300 prodPrice 600 (300*2) prodStock 2 - prodID 3 prodName Time travel kit prodCost 1200 (900+300) prodPrice 1560 (1200*1.3) prodStock 2 Table rels relID 1 relSrc 1 (Flux capacitor) relType 4 (is a subpart of) relDst 3 (Time travel kit) - relID 2 relSrc 2 (Mr Fusion) relType 4 (is a subpart of) relDst 3 (Time travel kit)
prodPrice: рассчитывается на основе стоимости, но не линейным способом. В этом примере для стоимости 500 или меньше наценка составляет 200%. При стоимости 500-1000 наценка 150%. При стоимости 1000+ наценка составляет 130% Вот почему набор для путешествий во времени намного дешевле, чем отдельные детали.
prodStock: вот моя проблема. Я могу продавать комплекты или отдельные детали, так что запас комплектов виртуальный.
Проблема при покупке: некоторые поставщики продают мне комплект для путешествий во времени целиком (с одним штрих-кодом), а некоторые продают мне отдельные части (с другим штрих-кодом). .
Проблема, когда я продаю: если я продаю только комплекты, подсчитать запасы будет легко: «У меня есть 3 конденсатора Flux и 2 Mr Fusions, поэтому у меня есть 2 набора для путешествий во времени и конденсатор Flux». Но я могу продавать комплекты или отдельные детали. . Таким образом, я должен одновременно отслеживать запасы отдельных деталей и возможных комплектов (и я должен компенсировать цену продажи).
Наверное, это действительно просто, но я не вижу простого решения. Резюме: я должен найти способ отслеживать запасы, и база данных/программа должна это делать (я не могу попросить клерка исправить запас)
Я использую php+MySql. Но это больше логическая задача, чем программная
Обновление: к сожалению, решение Eagle не будет работать.
- отношения могут и являются рекурсивными (один набор использует другой набор)
- Есть комплекты, в которых используется более одной детали (2 конденсатора потока + 1 Mr Fusion).
- Мне действительно нужно сохранить стоимость запаса комплекта. Та же база данных используется для веб-страницы, на которой пользователи хотят покупать детали. И я должен показать доступный запас (иначе они даже не попытаются купить). И не может позволить себе подсчитывать акции при каждом поиске пользователя на веб-странице.
Но мне понравилась идея с логическим значением, помечающим акции как виртуальные
prodCost
изprodID 3
не должно быть900 + 300
(или хотя бы1350 + 600
)? - person Senseful   schedule 03.06.2010