Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / как правильно хранить и получать текущее состояние ячейки склада. / 25 сообщений из 31, страница 1 из 2
08.11.2016, 03:28
    #39343042
eualexey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно хранить и получать текущее состояние ячейки склада.
Есть склад
Не складе много ячеек.
По каждой ячейке идет большой оборот прихода расхода.
Как правильно организовать хранение данных?
1. Писать все приходы в ячейку в таблицу с знаком плюс а расходы со знаком минус
А остатки по ячейкам вычислять суммирование товаров с + и -
Либо
2 подход как в п,1 только для прихода своя таблица для расхода своя таблица.
Остатки вычислять так же
Либо
3. Расходы в таблицу А приходы в таблицу Б
А состояние ячейки держать в отдельной таблице Ж в которой идет через триггер update количества товара в зависимости от того списывается он или оприходуется. И при запросе остатков получать из таблицы Ж которая по сути не должна быть огромной.

Думаю задача не нова хотелось бы услышать как мир ее решил.
Спасибо.
...
Рейтинг: 0 / 0
08.11.2016, 10:42
    #39343196
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно хранить и получать текущее состояние ячейки склада.
...
Рейтинг: 0 / 0
08.11.2016, 10:43
    #39343199
Злой Бобр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно хранить и получать текущее состояние ячейки склада.
eualexey,

Все зависит от оборота и субд. Обычно как в 1, только плюс еще одна таблица для хранения остатков скажем на 1 число каждого месяца. Текущий остаток считаем как остаток на 1 число, плюс оборот по таблице начиная с 1 числа по нужный момент времени.
...
Рейтинг: 0 / 0
08.11.2016, 21:56
    #39343899
Riss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно хранить и получать текущее состояние ячейки склада.
Вариант -
Таблица одна ,но есть еще поле - справочник видов движения - в том числе и остаток (скажем на начало месяца, хотя можно и ежедневный).В этом справочнике уход, приход, перевод, списание, раздробление и т.д.
Хотя я справочник движения прикрепил и к документу, а в документе куча записей...
...
Рейтинг: 0 / 0
08.11.2016, 22:43
    #39343923
eualexey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно хранить и получать текущее состояние ячейки склада.
Злой Бобр,

А те данные которые в таблице до 1 числа они куда то в архивную таблицу должны сбрасываться или же так все в 1 и копиться?
...
Рейтинг: 0 / 0
09.11.2016, 02:55
    #39343964
Злой Бобр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно хранить и получать текущее состояние ячейки склада.
eualexeyА те данные которые в таблице до 1 числа они куда то в архивную таблицу должны сбрасываться или же так все в 1 и копиться?
Две отдельные таблицы. Ну а бекап вы ж всей БД делаете.
Ну или задайте вопрос более конкретно, а то я толком немогу понять в чем суть вопроса.
...
Рейтинг: 0 / 0
09.11.2016, 10:36
    #39344039
Riss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно хранить и получать текущее состояние ячейки склада.
Поверьте опыту - не дело это 2 таблицы...
...
Рейтинг: 0 / 0
09.11.2016, 17:08
    #39344357
IDVT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно хранить и получать текущее состояние ячейки склада.
WMS изобретаете?

как уже отметили выше.
приход / расход номенклатуры лучше писать в одну таблицу 'SkuLocLot' оперирую знаками, также можно держать ключ операции "picking" / "refill" и т.д. Актуальный баланс ячейки держать в другой таблице, т.к. в транзакционной системе нет времени суммировать все Ваши движения с точкой актуальности.

Если есть потребность (а она точно есть у Вас) промежуточный баланс ячейки "на начало месяца" необходимо держать в отдельной таблице (3я таблица), иначе как оперативно историю поднимать за определенный период.
...
Рейтинг: 0 / 0
09.11.2016, 19:43
    #39344449
Riss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно хранить и получать текущее состояние ячейки склада.
Думаю не слабо еще 4-ю таблицу придумать? 3 таблицы с одной структурой ? Круглое тащим, а куб катим....
...
Рейтинг: 0 / 0
09.11.2016, 20:14
    #39344460
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно хранить и получать текущее состояние ячейки склада.
RissДумаю не слабо еще 4-ю таблицу придумать? 3 таблицы с одной структурой ? Круглое тащим, а куб катим....
Какие "3 таблицы с одной структурой" Вы здесь видите?
...
Рейтинг: 0 / 0
10.11.2016, 00:22
    #39344527
Riss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно хранить и получать текущее состояние ячейки склада.
Кот Матроскин

IDVTWMS изобретаете?

как уже отметили выше.
приход / расход номенклатуры лучше писать в одну таблицу 'SkuLocLot' оперирую знаками, также можно держать ключ операции "picking" / "refill" и т.д. Актуальный баланс ячейки держать в другой таблице, т.к. в транзакционной системе нет времени суммировать все Ваши движения с точкой актуальности.

Если есть потребность (а она точно есть у Вас) промежуточный баланс ячейки "на начало месяца" необходимо держать в отдельной таблице (3я таблица), иначе как оперативно историю поднимать за определенный период.

ВСЕ перечисленные таблицы будут иметь как минимум кол-во, сумму, ссылку на ячейку , ну и дату .. Ну и он по моему 3 таблицы предлагает
...
Рейтинг: 0 / 0
10.11.2016, 11:18
    #39344645
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно хранить и получать текущее состояние ячейки склада.
RissКот Матроскин

IDVTWMS изобретаете?

как уже отметили выше.
приход / расход номенклатуры лучше писать в одну таблицу 'SkuLocLot' оперирую знаками, также можно держать ключ операции "picking" / "refill" и т.д. Актуальный баланс ячейки держать в другой таблице, т.к. в транзакционной системе нет времени суммировать все Ваши движения с точкой актуальности.

Если есть потребность (а она точно есть у Вас) промежуточный баланс ячейки "на начало месяца" необходимо держать в отдельной таблице (3я таблица), иначе как оперативно историю поднимать за определенный период.

ВСЕ перечисленные таблицы будут иметь как минимум кол-во, сумму, ссылку на ячейку , ну и дату .. Ну и он по моему 3 таблицы предлагает
1. "N таблиц будут иметь как минимум такие-то поля" и "N таблиц с одинаковой структурой" - это несколько разные тезисы. БОльшая часть таблиц в базе будет иметь поле ID, но это не очень убедительный довод за то, чтобы отказаться от них и складывать все данные в одну.
2. Поле "сумма" для содержимого складской ячейки - может иметь смысл в приходах-расходах, малоосмысленно в "срезе на дату" и бессмысленно от слова "совсем" - для "текущего состояния склада".
3. Поле "Дата" в "текущем состоянии склада" так же вызывает вопросы.

Итого, какие общие поля остались для данных 3 таблиц - "количество" и "ячейка"?

Лично я не сторонник хранения "текущего состояния склада", но раз уж взялись обсуждать это решение...
...
Рейтинг: 0 / 0
10.11.2016, 13:40
    #39344808
Riss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно хранить и получать текущее состояние ячейки склада.
Кот Матроскин

1. Прикольно, но Вы сами добавили еще поле ID ко всем таблицам ))
2 Назовите это "иметь смысл","малоосмысленно" и "бессмысленно", но на 80% думаю, что все эти таблицы будут иметь поле "Сумма"
Остальные 20% оставлю на упертость - в смысле "Сказал, что не будет, значит не будет"...
3 "Дата" как бы не вызывал сомнение, но это не значит , что надо его отмести
В конце концов 3 поля (включая ID))) - тоже таблица
Подойдем по другому...
Назовите, пожалуйста, поля, которыми будут отличать эти таблицы...
...
Рейтинг: 0 / 0
10.11.2016, 14:16
    #39344854
Алейкум Ассалям
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно хранить и получать текущее состояние ячейки склада.
RissНазовите, пожалуйста, поля, которыми будут отличать эти таблицы...
См. в моем сообщении пункт 2 и пункт 3.
...
Рейтинг: 0 / 0
10.11.2016, 15:35
    #39344985
Riss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно хранить и получать текущее состояние ячейки склада.
Алейкум АссалямRissНазовите, пожалуйста, поля, которыми будут отличать эти таблицы...
См. в моем сообщении пункт 2 и пункт 3.

Прошу прощения - а где ваше сообщение?
ПО сути нашел сообщение автора темы, но там нет описания полей, т.е не по теме прикола с Котом...
...
Рейтинг: 0 / 0
10.11.2016, 16:06
    #39345026
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно хранить и получать текущее состояние ячейки склада.
Riss
1. Прикольно, но Вы сами добавили еще поле ID ко всем таблицам ))
2 Назовите это "иметь смысл","малоосмысленно" и "бессмысленно", но на 80% думаю, что все эти таблицы будут иметь поле "Сумма"
Остальные 20% оставлю на упертость - в смысле "Сказал, что не будет, значит не будет"...
3 "Дата" как бы не вызывал сомнение, но это не значит , что надо его отмести
В конце концов 3 поля (включая ID))) - тоже таблица
Подойдем по другому...
Назовите, пожалуйста, поля, которыми будут отличать эти таблицы...

Например, в приходе/расходе будет ссылка на документ, по которому осуществляется оный приход/расход.Про дату и сумму я уже упомянул.
...
Рейтинг: 0 / 0
10.11.2016, 19:29
    #39345181
lLocust
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно хранить и получать текущее состояние ячейки склада.
RissВариант -
Таблица одна ,но есть еще поле - справочник видов движения - в том числе и остаток (скажем на начало месяца, хотя можно и ежедневный).В этом справочнике уход, приход, перевод, списание, раздробление и т.д.
Хотя я справочник движения прикрепил и к документу, а в документе куча записей... RissДумаю не слабо еще 4-ю таблицу придумать? 3 таблицы с одной структурой ? Круглое тащим, а куб катим....Конечно не слабо )
Одна таблица на приходы, одна на расходы, одна для остатков на дату, ну и 4ая для актуальных остатков...
А можно все и в одну таблицу поместить, где и приходы и расходы и сразу и остатки на дату операции, да заодно и актуальные остатки пересчитываются по всем записям...

Архитектура БД это как фетиш для избранных )))

Если смотреть по применению, то есть обороты и остатки. По мне так вполне логично ложатся в две разные таблицы.
Остатки, конечно, можно поделить на "на дату" и "актуальные" и хранить в разных таблицах, а можно и в одной - в целом структура у них и правда схожа. А отсутствие даты в актуальном остатке можно использовать как признак отличия "актуальных" остатков от тех что "на дату".
(честно говоря, т.к. у обоих подходов есть как плюсы, так и минусы, то влом выбирать)
...
Рейтинг: 0 / 0
10.11.2016, 19:58
    #39345197
Riss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно хранить и получать текущее состояние ячейки склада.
Кот МатроскинНапример, в приходе/расходе будет ссылка на документ, по которому осуществляется оный приход/расход.Про дату и сумму я уже упомянул.
А что мешает, в данном случае, остатки также иметь здесь, где будет ссылка на документ, который будет рассчитан в процедуре и иметь название "Остатки" и тип документа - остатки? как и документы приходно - расходные Ведь этих остатков по количеству записей гораздо меньше, при интенсивных купли - продажах и они некритично будут влиять на роль во времени обслуживания ? Будет даже проще - вместо 3 таблиц - одна?
...
Рейтинг: 0 / 0
10.11.2016, 20:06
    #39345201
Riss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно хранить и получать текущее состояние ячейки склада.
lLocust,

Даже спорить не буду - всему есть место, но при выполнении запросов, отчетов, обслуживания, описания программных кодов и обкатывания - гораздо проще иметь дело с одной таблицей, чем с 6-тью - испытал на практике )))
...
Рейтинг: 0 / 0
10.11.2016, 20:32
    #39345210
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно хранить и получать текущее состояние ячейки склада.
RissКот МатроскинНапример, в приходе/расходе будет ссылка на документ, по которому осуществляется оный приход/расход.Про дату и сумму я уже упомянул.
А что мешает, в данном случае, остатки также иметь здесь, где будет ссылка на документ, который будет рассчитан в процедуре и иметь название "Остатки" и тип документа - остатки?
Мешает бессмысленность этого документа и отсутствие оного в реальности.
Я еще раз повторюсь - можно запихать все атрибуты всех сущностей в одну таблицу и хлопая глазами спрашивать "А что мешает в лишние для конкретной сущности атрибуты писать заглушки?", но всерьез обсуждать этот подход - простите, неинтересно.


Будет даже проще - вместо 3 таблиц - одна
Нет, будет сложнее, вместо трех таблиц - одна.
...
Рейтинг: 0 / 0
11.11.2016, 00:05
    #39345296
eualexey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно хранить и получать текущее состояние ячейки склада.
IDVTWMS изобретаете?
Если есть потребность (а она точно есть у Вас) промежуточный баланс ячейки "на начало месяца" необходимо держать в отдельной таблице (3я таблица), иначе как оперативно историю поднимать за определенный период.

вообще нужно знать
1) остатки на сейчас / остатки на любой момент времени
2) обороты за любой период времени (начало периода и конец периода задаются пользователем в полях) чтобы можно было наприер по товару "бублик" получить отчет вида

с 03.02.2016 по 24.10.2016
начало приход расход остаток410212

а информация по остаткам на начало / конец месяца она не нужна т.е. это частный случай п.1
...
Рейтинг: 0 / 0
11.11.2016, 00:19
    #39345299
Riss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно хранить и получать текущее состояние ячейки склада.
Кот МатроскинМешает бессмысленность этого документа и отсутствие оного в реальности.
Я еще раз повторюсь - можно запихать все атрибуты всех сущностей в одну таблицу и хлопая глазами спрашивать "А что мешает в лишние для конкретной сущности атрибуты писать заглушки?", но всерьез обсуждать этот подход - простите, неинтересно.



Нет, будет сложнее, вместо трех таблиц - одна.

все очень субъективно
"неинтересно" "хлопая глазами?"
и это аргументы?
...
Рейтинг: 0 / 0
11.11.2016, 06:02
    #39345330
MangusJR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно хранить и получать текущее состояние ячейки склада.
Как это сделано в нашей WMS. У нас стоит Manhattan SCALE.
Есть таблица с транзакциями - они отражают все возможные изменения движения товара.
Есть таблица с типами транзакций - описываются граничные условия применения - откуда-куда двигать, в каком количестве и так далее. Есть системные транзакции и пользовательские - первые зашиты по умолчанию, вторые можно создавать.
Есть таблица с остатками по ячейкам. Содержит помимо всего прочего 4 поля с количеством товара - остатки на сейчас, количество товара зарезервированного под движение, но еще не взятого, количество товара под вопросом (возникает когда происходит недобор например), количество товара перемещаемого в ячейку (необходимо потому что возможна ситуация с резервированием товара который еще в ячейку не приехал, но скоро там будет, чтобы не ждать окончания пополнения например).
Остатки на конкретное число и время в общем виде не получаются, требуется рассчитывать, или поднимать транзакцию ближайшую к нужному моменту. Каждая транзакция содержит остатки по изменяемой ячейке до изменения (все четыре количества) и остатки после изменения (все четыре опять же).
В результате, когда система резервирует товар по ячейкам под отбор у нее нет необходимости пересчитывать для всех 20000 ячеек остатки на текущий момент (тем более если у вас точка актуальности в начале месяца, сейчас конец месяца и через ячейку прошло несколько сотен операций отбора и пополнения разного товара и разных партий в общем случае) - дополнительно учитывайте, что резервирование это не одна операция в день, а постоянно по факту получения новых заказов (хоть каждые 5 минут). Склад должен постоянно иметь актуальные остатки прямо сейчас и не ждать пересчета при каждом вопросе.

Как-то так. Извиняюсь, что сумбурно.
...
Рейтинг: 0 / 0
11.11.2016, 07:09
    #39345336
Riss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно хранить и получать текущее состояние ячейки склада.
MangusJRКак-то так. Извиняюсь, что сумбурно.

Зато очень даже доходчиво )))
...
Рейтинг: 0 / 0
11.11.2016, 10:12
    #39345390
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно хранить и получать текущее состояние ячейки склада.
RissКот МатроскинМешает бессмысленность этого документа и отсутствие оного в реальности.
Я еще раз повторюсь - можно запихать все атрибуты всех сущностей в одну таблицу и хлопая глазами спрашивать "А что мешает в лишние для конкретной сущности атрибуты писать заглушки?", но всерьез обсуждать этот подход - простите, неинтересно.



Нет, будет сложнее, вместо трех таблиц - одна.

все очень субъективно
"неинтересно" "хлопая глазами?"
и это аргументы?
Аргументы в пользу чего?
Вы высказали тезис "три таблицы с одинаковой структурой не нужны". Выяснилось, что никаких одинаковых структур нет в помине. Теперь Вы заявляете "А ну и подумаешь что структуры неодинаковы - я все равно засунул бы в одну таблицу и писал бы в отсутствующие поля заглушки". Что я на это могу сказать - ну засовывайте, это свободная страна, в конце концов.
И да, "все очень субъективно" - вот это, несомненно, всем аргументам аргумент.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / как правильно хранить и получать текущее состояние ячейки склада. / 25 сообщений из 31, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]