powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Зачем таблица движения товара, когда есть таблица записи документов
13 сообщений из 13, страница 1 из 1
Зачем таблица движения товара, когда есть таблица записи документов
    #38852692
Delphi159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Создаю программу складского учета.
есть:
таблица документов(Doc)
таблица записи документов(DocDetails).
таблица товарных операции(DocType)-поступление товара,реализация,Возврат поставщику,Списание товара,Внутр.перемещение...
таблица движения товара-Move(id, date, id_goods, id_doc,другие атрибуты...)
таблица Goods.
другие справочники.


Я так представляю: когда,например, получаю товар, тогда создаются записи в Doc(1 запись) и в DocDetails(столько,сколько номенклатур получили), а при "проводке" записи создаются в таблице движения товара(Move), При нажатии на кнопку "провести" все эти записи будут грубо говоря "копироваться" в таблице движение товара.

Мой вопрос:А нельзя движение товара посчитать в запросах сразу из таблицы записи документов(DocDetails) и при подтверждении изменении какой-нибудь флаг подтверждения занести в стольбец DocDetails, а при удалении- другой флаг? В чем основная причина появления новой таблицы движения товара- все эти столбцы(date, id_goods, id_doc,count) ведь существуют в DocDetails?
...
Рейтинг: 0 / 0
Зачем таблица движения товара, когда есть таблица записи документов
    #38852696
Delphi159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Delphi159 при подтверждении изменении какой-нибудь флаг подтверждения занести в стольбец DocDetails, а при удалении- другой флаг?
извините, перепутал- какой-нибудь статус подтверждения или удаления занести в стольбец не таблицы DocDetails, а Doc.
...
Рейтинг: 0 / 0
Зачем таблица движения товара, когда есть таблица записи документов
    #38852716
Гхостик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Delphi159,

Можно. Но, если данных много, то для запроса на получение остатков придется join-ить и таблицу заголовков фактур, которая тоже не маленькая. В общем, стандартные плюсы и минусы денормализации.

Ещё бывают случаи (точнее, так спроектировано, правильно ли это - отдельный вопрос) когда источником движения товара будут факты, зафиксированные в других таблицах, не в Doc и DocDetails. Можно, конечно, написать и union для получения остатков, но скорости он тоже не прибавит.
...
Рейтинг: 0 / 0
Зачем таблица движения товара, когда есть таблица записи документов
    #38852856
по сабжу: можно, но это крайне неоптимально по многим причинам:

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

В случае журнала движения:
* очень простые отчеты (буквально по паре таблиц).
* простая урезка базы.
* независимость от таблиц первичных данных, кот. может быть реально много.
* логику построения журнала всегда можно поменять и перестроить журнал заново.
* журнал может жить отдельной жизнью от первички.
...
Рейтинг: 0 / 0
Зачем таблица движения товара, когда есть таблица записи документов
    #38852921
wamaco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Delphi159 В чем основная причина появления новой таблицы движения товара- все эти столбцы(date, id_goods, id_doc,count) ведь существуют в DocDetails?

Причины появления:
1. Скорость (при больших объемах)
2. Отделение логики товародвижения от интерфейса.
...
Рейтинг: 0 / 0
Зачем таблица движения товара, когда есть таблица записи документов
    #38853469
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Delphi159 В чем основная причина появления новой таблицы движения товара- все эти столбцы(date, id_goods, id_doc,count) ведь существуют в DocDetails?
В том что это разные сущности с разным жизненнным циклом.

Что Вы будете делать, если в накладной у Вас указано 20 ершиков, а физически приехало 19?
...
Рейтинг: 0 / 0
Зачем таблица движения товара, когда есть таблица записи документов
    #38853512
Кот МатроскинЧто Вы будете делать, если в накладной у Вас указано 20 ершиков, а физически приехало 19?Неудачный пример. Где-то же указаны именно эти 19 ? Просто в другом поле/таблице.

Гораздо интереснее, когда приход в нестандартной ед.изм. и не в валюте учета.

В таблице движения все нужные поля выведены в одну таблицу.
В случае запроса к первичным таблицам придется делать трудоемкую выборку к неск. таблицам нехилого размера + пересчеты ЕИ, сумм (н-р НДС) и валют. А еще указать правильный знак операции (приход "+", расход "-").
...
Рейтинг: 0 / 0
Зачем таблица движения товара, когда есть таблица записи документов
    #38853543
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
постоянный мемберКот МатроскинЧто Вы будете делать, если в накладной у Вас указано 20 ершиков, а физически приехало 19?Неудачный пример. Где-то же указаны именно эти 19 ? Просто в другом поле/таблице.


Если Вы не заметили, вопрос, на который я отвечал, звучал как "Зачем нужна [оная] другая таблица?"
...
Рейтинг: 0 / 0
Зачем таблица движения товара, когда есть таблица записи документов
    #38853700
wamaco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскинпостоянный мемберпропущено...
Неудачный пример. Где-то же указаны именно эти 19 ? Просто в другом поле/таблице.


Если Вы не заметили, вопрос, на который я отвечал, звучал как "Зачем нужна [оная] другая таблица?"

она нужна не только для этого...
ордерную схему поступления можно и без нее реализовать.
...
Рейтинг: 0 / 0
Зачем таблица движения товара, когда есть таблица записи документов
    #38854198
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Delphi159В чем основная причина появления новой таблицы движения товара- все эти столбцы(date, id_goods, id_doc,count) ведь существуют в DocDetails?
Основная причина в том, что написать бумажку - это одно действие, взять коробку со склада - это другое действие, и они могут отличаться и часто отличаются буквально всем: датой, исполнителем, местом и так далее. Поэтому оформить их как разные записи удобно; это позволяет легко (без дополнительных трат) навешивать на них сложную и меняющуюся по ходу жизненного цикла бизнес-логику.

Например: разные части документа могут отдаваться разными людьми с разных складов (или приниматься аналогично).

Например: реализация документа может потребовать дополнительных действий. Ну скажем, расходный ордер выписан на сто комплектов "Билайн стартовый", а на деле со склада уходит сто телефонов "Нокия" и сто зарядок к ним.

Например: документ не всегда реализуется единовременно. Скажем, в расходном ордере из предыдущего пункта шестьдесят телефонов могут уйти с одного склада, двадцать - с другого, а двадцать - повиснуть в ожидании следующих поступлений.

Позиции документа не всегда напрямую соответствуют движениям. Например, я встречал такой замечательный документ "смешивание": его позициями являются, допустим, сто литров бензола марки "А" и двести литров бензола марки "Б" (расход со склада), а результатом - триста литров бензола "просто" (приход на склад, который в документе позицией не описывается, а вычисляется). Причём, для полноты картины, до 31.12.2010 это было "триста литров бензола просто", а с 01.01.2011 должно начать образовываться "триста литров бензола смешанного", который будет присутствовать на складе вместе с "бензолом просто".

Позиции документа зачастую содержат "лишние" поля и/или не содержат "необходимых". Скажем, какой-нибудь документ "пересортица" со смыслом "сто килограмм яблок были высшего сорта, а стали первого". Оформлять его как две позиции расход-приход неудобно, удобнее - одна позиция с двумя ссылками на сорт (или на товар).

В общем, учитывать миллион подобных вещей в позициях документов - зверски, дико, немыслимо неудобно, практически невозможно. Просто представьте себе, что Вам нужно сделать десять отчётов и в каждом из них, чтобы получить правильные цифры, учесть эти тонкости. А когда появится новая - внести во все эти отчёты. Думаю, уже хватит. А в реальности всё будет гораздо хуже.
...
Рейтинг: 0 / 0
Зачем таблица движения товара, когда есть таблица записи документов
    #38854804
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wamacoКот Матроскинпропущено...


Если Вы не заметили, вопрос, на который я отвечал, звучал как "Зачем нужна [оная] другая таблица?"

она нужна не только для этого...
ордерную схему поступления можно и без нее реализовать.
гляжу, у многих большая проблема с восприятием связных текстов.

На вопрос "зачем нужна дополнительная таблица?" я ответил "потому что она отражает дополнительную сущность". В следующей фразе привел пример, когда сущности - различаются. Разумеется, это не единственный случай, когда данные сущности различаются - спасибо, кэп.
...
Рейтинг: 0 / 0
Зачем таблица движения товара, когда есть таблица записи документов
    #38854946
Позиции документа не всегда напрямую соответствуют движениям. Например, я встречал такой замечательный документ "смешивание"Это банальная сборка/разборка комплектов или даже "рецепт блюда": две позиции списываются, одна(или не одна) приходуются. Возможен даже учет потерь и отходов.
Пропорции списания/приходования могут быть описаны в спец. документе-комплекте(рецепте).
При этом он может быть симметричным(сборка/разборка равны) или несимметричным (не равны).
...
Рейтинг: 0 / 0
Зачем таблица движения товара, когда есть таблица записи документов
    #38855690
wamaco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскинwamacoпропущено...


она нужна не только для этого...
ордерную схему поступления можно и без нее реализовать.
гляжу, у многих большая проблема с восприятием связных текстов.

На вопрос "зачем нужна дополнительная таблица?" я ответил "потому что она отражает дополнительную сущность". В следующей фразе привел пример, когда сущности - различаются. Разумеется, это не единственный случай, когда данные сущности различаются - спасибо, кэп.

говорить можно много, но (повторюсь) основные 2 причины:

1. Скорость (при больших объемах)
2. Отделение логики товародвижения от интерфейса. (здесь можно привести 1000 примеров различных документов!!!!)
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Зачем таблица движения товара, когда есть таблица записи документов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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