|
|
|
Зачем таблица движения товара, когда есть таблица записи документов
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Создаю программу складского учета. есть: таблица документов(Doc) таблица записи документов(DocDetails). таблица товарных операции(DocType)-поступление товара,реализация,Возврат поставщику,Списание товара,Внутр.перемещение... таблица движения товара-Move(id, date, id_goods, id_doc,другие атрибуты...) таблица Goods. другие справочники. Я так представляю: когда,например, получаю товар, тогда создаются записи в Doc(1 запись) и в DocDetails(столько,сколько номенклатур получили), а при "проводке" записи создаются в таблице движения товара(Move), При нажатии на кнопку "провести" все эти записи будут грубо говоря "копироваться" в таблице движение товара. Мой вопрос:А нельзя движение товара посчитать в запросах сразу из таблицы записи документов(DocDetails) и при подтверждении изменении какой-нибудь флаг подтверждения занести в стольбец DocDetails, а при удалении- другой флаг? В чем основная причина появления новой таблицы движения товара- все эти столбцы(date, id_goods, id_doc,count) ведь существуют в DocDetails? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2015, 01:37 |
|
||
|
Зачем таблица движения товара, когда есть таблица записи документов
|
|||
|---|---|---|---|
|
#18+
Delphi159 при подтверждении изменении какой-нибудь флаг подтверждения занести в стольбец DocDetails, а при удалении- другой флаг? извините, перепутал- какой-нибудь статус подтверждения или удаления занести в стольбец не таблицы DocDetails, а Doc. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2015, 02:03 |
|
||
|
Зачем таблица движения товара, когда есть таблица записи документов
|
|||
|---|---|---|---|
|
#18+
Delphi159, Можно. Но, если данных много, то для запроса на получение остатков придется join-ить и таблицу заголовков фактур, которая тоже не маленькая. В общем, стандартные плюсы и минусы денормализации. Ещё бывают случаи (точнее, так спроектировано, правильно ли это - отдельный вопрос) когда источником движения товара будут факты, зафиксированные в других таблицах, не в Doc и DocDetails. Можно, конечно, написать и union для получения остатков, но скорости он тоже не прибавит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2015, 07:33 |
|
||
|
Зачем таблица движения товара, когда есть таблица записи документов
|
|||
|---|---|---|---|
|
#18+
по сабжу: можно, но это крайне неоптимально по многим причинам: * много преобразований (ЕИ, валют, сумм и пр.) * сильная зависимость от структуры таблиц * заметные трудности с урезкой базы * сложные отчеты по куче таблиц В случае журнала движения: * очень простые отчеты (буквально по паре таблиц). * простая урезка базы. * независимость от таблиц первичных данных, кот. может быть реально много. * логику построения журнала всегда можно поменять и перестроить журнал заново. * журнал может жить отдельной жизнью от первички. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2015, 10:31 |
|
||
|
Зачем таблица движения товара, когда есть таблица записи документов
|
|||
|---|---|---|---|
|
#18+
Delphi159 В чем основная причина появления новой таблицы движения товара- все эти столбцы(date, id_goods, id_doc,count) ведь существуют в DocDetails? Причины появления: 1. Скорость (при больших объемах) 2. Отделение логики товародвижения от интерфейса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2015, 11:37 |
|
||
|
Зачем таблица движения товара, когда есть таблица записи документов
|
|||
|---|---|---|---|
|
#18+
Delphi159 В чем основная причина появления новой таблицы движения товара- все эти столбцы(date, id_goods, id_doc,count) ведь существуют в DocDetails? В том что это разные сущности с разным жизненнным циклом. Что Вы будете делать, если в накладной у Вас указано 20 ершиков, а физически приехало 19? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2015, 17:47 |
|
||
|
Зачем таблица движения товара, когда есть таблица записи документов
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинЧто Вы будете делать, если в накладной у Вас указано 20 ершиков, а физически приехало 19?Неудачный пример. Где-то же указаны именно эти 19 ? Просто в другом поле/таблице. Гораздо интереснее, когда приход в нестандартной ед.изм. и не в валюте учета. В таблице движения все нужные поля выведены в одну таблицу. В случае запроса к первичным таблицам придется делать трудоемкую выборку к неск. таблицам нехилого размера + пересчеты ЕИ, сумм (н-р НДС) и валют. А еще указать правильный знак операции (приход "+", расход "-"). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2015, 18:11 |
|
||
|
Зачем таблица движения товара, когда есть таблица записи документов
|
|||
|---|---|---|---|
|
#18+
постоянный мемберКот МатроскинЧто Вы будете делать, если в накладной у Вас указано 20 ершиков, а физически приехало 19?Неудачный пример. Где-то же указаны именно эти 19 ? Просто в другом поле/таблице. Если Вы не заметили, вопрос, на который я отвечал, звучал как "Зачем нужна [оная] другая таблица?" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2015, 18:31 |
|
||
|
Зачем таблица движения товара, когда есть таблица записи документов
|
|||
|---|---|---|---|
|
#18+
Кот Матроскинпостоянный мемберпропущено... Неудачный пример. Где-то же указаны именно эти 19 ? Просто в другом поле/таблице. Если Вы не заметили, вопрос, на который я отвечал, звучал как "Зачем нужна [оная] другая таблица?" она нужна не только для этого... ордерную схему поступления можно и без нее реализовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2015, 00:30 |
|
||
|
Зачем таблица движения товара, когда есть таблица записи документов
|
|||
|---|---|---|---|
|
#18+
Delphi159В чем основная причина появления новой таблицы движения товара- все эти столбцы(date, id_goods, id_doc,count) ведь существуют в DocDetails? Основная причина в том, что написать бумажку - это одно действие, взять коробку со склада - это другое действие, и они могут отличаться и часто отличаются буквально всем: датой, исполнителем, местом и так далее. Поэтому оформить их как разные записи удобно; это позволяет легко (без дополнительных трат) навешивать на них сложную и меняющуюся по ходу жизненного цикла бизнес-логику. Например: разные части документа могут отдаваться разными людьми с разных складов (или приниматься аналогично). Например: реализация документа может потребовать дополнительных действий. Ну скажем, расходный ордер выписан на сто комплектов "Билайн стартовый", а на деле со склада уходит сто телефонов "Нокия" и сто зарядок к ним. Например: документ не всегда реализуется единовременно. Скажем, в расходном ордере из предыдущего пункта шестьдесят телефонов могут уйти с одного склада, двадцать - с другого, а двадцать - повиснуть в ожидании следующих поступлений. Позиции документа не всегда напрямую соответствуют движениям. Например, я встречал такой замечательный документ "смешивание": его позициями являются, допустим, сто литров бензола марки "А" и двести литров бензола марки "Б" (расход со склада), а результатом - триста литров бензола "просто" (приход на склад, который в документе позицией не описывается, а вычисляется). Причём, для полноты картины, до 31.12.2010 это было "триста литров бензола просто", а с 01.01.2011 должно начать образовываться "триста литров бензола смешанного", который будет присутствовать на складе вместе с "бензолом просто". Позиции документа зачастую содержат "лишние" поля и/или не содержат "необходимых". Скажем, какой-нибудь документ "пересортица" со смыслом "сто килограмм яблок были высшего сорта, а стали первого". Оформлять его как две позиции расход-приход неудобно, удобнее - одна позиция с двумя ссылками на сорт (или на товар). В общем, учитывать миллион подобных вещей в позициях документов - зверски, дико, немыслимо неудобно, практически невозможно. Просто представьте себе, что Вам нужно сделать десять отчётов и в каждом из них, чтобы получить правильные цифры, учесть эти тонкости. А когда появится новая - внести во все эти отчёты. Думаю, уже хватит. А в реальности всё будет гораздо хуже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2015, 14:11 |
|
||
|
Зачем таблица движения товара, когда есть таблица записи документов
|
|||
|---|---|---|---|
|
#18+
wamacoКот Матроскинпропущено... Если Вы не заметили, вопрос, на который я отвечал, звучал как "Зачем нужна [оная] другая таблица?" она нужна не только для этого... ордерную схему поступления можно и без нее реализовать. гляжу, у многих большая проблема с восприятием связных текстов. На вопрос "зачем нужна дополнительная таблица?" я ответил "потому что она отражает дополнительную сущность". В следующей фразе привел пример, когда сущности - различаются. Разумеется, это не единственный случай, когда данные сущности различаются - спасибо, кэп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2015, 09:07 |
|
||
|
Зачем таблица движения товара, когда есть таблица записи документов
|
|||
|---|---|---|---|
|
#18+
Позиции документа не всегда напрямую соответствуют движениям. Например, я встречал такой замечательный документ "смешивание"Это банальная сборка/разборка комплектов или даже "рецепт блюда": две позиции списываются, одна(или не одна) приходуются. Возможен даже учет потерь и отходов. Пропорции списания/приходования могут быть описаны в спец. документе-комплекте(рецепте). При этом он может быть симметричным(сборка/разборка равны) или несимметричным (не равны). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2015, 11:01 |
|
||
|
Зачем таблица движения товара, когда есть таблица записи документов
|
|||
|---|---|---|---|
|
#18+
Кот Матроскинwamacoпропущено... она нужна не только для этого... ордерную схему поступления можно и без нее реализовать. гляжу, у многих большая проблема с восприятием связных текстов. На вопрос "зачем нужна дополнительная таблица?" я ответил "потому что она отражает дополнительную сущность". В следующей фразе привел пример, когда сущности - различаются. Разумеется, это не единственный случай, когда данные сущности различаются - спасибо, кэп. говорить можно много, но (повторюсь) основные 2 причины: 1. Скорость (при больших объемах) 2. Отделение логики товародвижения от интерфейса. (здесь можно привести 1000 примеров различных документов!!!!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2015, 02:13 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=24&tid=1540677]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
| others: | 236ms |
| total: | 381ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...