|
|
|
Проектирование базы склада с функциями учёта и аналитики
|
|||
|---|---|---|---|
|
#18+
Добрый день! Проектирую базу данных (под mysql-server) . Помогите с оптимальной архитектурой (есть пару идей) : Торговая фирма получает от поставщиков товар (имеет различные категории и вложенные подкатегории) по "накладным Прихода". Товар распределяется по нескольким магазинам. Для каждой категории/товара идёт своя наценка. Цена для товара может меняться: во время Прихода(изменение у поставщика), скидка, уценка. Соответственно на складе один и тот же товар в разных магазинах может иметь разную цену (не большой процент) . Со склада магазина товар списывается: Уход, Продажа либо Списание (Брак/Воровство/представительтские цели/хз что - можно примечанием оформлять =)) . Количество магазинов(складов) 4-ре, но будет увеличиваться. Задача: Переучёт раз в 1-3 месяца. 1.До переучёта нужно видеть всю историю по товару: кто и сколько принял на склад, кто и сколько продал, когда, по каким ценам? 2.Иметь актуальный склад (да считаем, что Приход/Уход/Продажу люди заполняют) по каждому магазину. 3.Получить "сверочные" данные для реального переучета. 4.После переучёта (можно конечно же непрерывно сохранять) данные можно архивировать, менять структуры, хранить по другому. Аналитика по продажам/складу(что лучше продаётся, какая прибыль с данного товара за год, определение сезонности и т.д.) не в риалтайме. Другими словами данные должны занимать меньше места и давать меньше нагрузку. Расчёт: Товарных позиций порядка 5000 на любом магазине-складе. В общей "таблице" Приход пополнение на 3000 записей/месяц В общей "таблице" Продажа пополнение на 9000 записей/месяц мысли и варианты: Итак склад --- это автор* Приход, Уход, и Остаток (либо Приход-Уход) * Либо Склад = Текущий Остаток Вариант №1. Товар храниться в таблице Storehouse (различается по цене, складу - idx_prid_price_whid_UNIQUE). Принадлежность разным магазинам ( warehouse_id). Плюсы: мало таблиц Минусы Actions достигает ~100000 за 1 период переучёта Storehouse - 20000 ( кол товара * кол магазинов) Вариант №2 Берём предыдущий вариант и разбиваем таблицу Actions на 3-и таблицы: Приход, Уход (передача на другой склад, списание и т.д.), Продажа. Плюсы: не так много таблиц Минусы Продажа достигает ~10 000 строк за 1 период переучёта Приход ~4000 строк Storehouse - 20000 строк ( кол товара * кол магазинов) Вариант №3 Берём Вариант №1 и делаем так, что бы в Storehouse были записи уникальные относительно Товара и дополнительно создаём таблицу ProductPriceWarehouse в которой храним: количество данного товара, цену на определенном складе. Плюсы: не так много таблиц Storehouse - 5000 строк ProductPriceWarehouse Уникальный ключ на два поля (price, product_id_) Минусы Продажа достигает ~10 000 строк за 1 период переучёта Приход ~4000 строк ProductPriceWarehouse ~ 20000 строк Вариант №4 Как и в варианте №2 - таблицу Actions разбить на 3-и таблицы. Вариант №5 пока нет мыслей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2013, 01:30 |
|
||
|
Проектирование базы склада с функциями учёта и аналитики
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2013, 01:34 |
|
||
|
Проектирование базы склада с функциями учёта и аналитики
|
|||
|---|---|---|---|
|
#18+
С точки зрения нормализованности - никаких проблем нет. Почему не использовать отдельные таблицы Приход, Расход ... ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2013, 10:23 |
|
||
|
Проектирование базы склада с функциями учёта и аналитики
|
|||
|---|---|---|---|
|
#18+
Negruzzi CristianС точки зрения нормализованности - никаких проблем нет. Почему не использовать отдельные таблицы Приход, Расход ... ? Вариант 4 - (болею и за компом не сижу- то все что успел нарисовать а читаю с планшета) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2013, 10:32 |
|
||
|
Проектирование базы склада с функциями учёта и аналитики
|
|||
|---|---|---|---|
|
#18+
Negruzzi CristianПочему не использовать отдельные таблицы Приход, Расход ... ? Потому что при этом запросы оборотов и, возможно, остатков превращаются в тошнотворных монстров. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2013, 13:54 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38160243&tid=1541359]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
| others: | 254ms |
| total: | 401ms |

| 0 / 0 |
