|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
В этом топике я опишу несколько вариантов структуры складской БД, от самого простого до довольно "продвинутых" видов, и постараюсь в нескольких словах указать их плюсы и минусы. Возможно, со временем кто-то возьмется окультурить изложенную ниже информацию и довести ее до вида, пригодного к опубликованию в FAQ. Несколько оговорок: - русскоязычные названия полей, используемые в схемах, приведены исключительно для наглядности. Я рекомендую пользоваться во-первых, одним языком при описании структуры таблиц, во-вторых, языком английским. Рекомендую я это с точки зрения удобства написания программ. При использовании англоязычных названий вам придется реже переключать раскладку клавиатуры, и дело будет идти быстрее. Еще одна причина не использовать русские названия: программа, написанная с их использованием, может не работать в версиях windows, локализованных на другие языки. - справочники Складов, Контрагентов и прочие я описываю в линейном виде, хотя сам предпочитаю делать их иерархическими, по аналогии с приведенной структурой справочника Номенклатуры. Поскольку организация иерархии - это отдельная и объемная тема, то останавливаться на ней здесь я не буду. - обратите внимание, что в таблицах документов введены поля как для хранения цены по строке, так и для суммы. Сделано это осмысленно, т.к. в разных учетных системах может быть первична как сумма, так и цена, и при обратных расчетах возможны ошибки округления. Хранение лишних 8 байт на запись я считаю несущественным по сравнению с потенциальными проблемами, с которыми вы можете столкнуться в связи с этим, и временем, которое придется потратить на объяснения с контрагентами и инстанциями. Кроме того, однажды введенный документ ни при каких обстоятельствах не должен меняться, если вы вдруг решили поменять алгоритмы расчета или округления. В служебных же таблицах я храню только сумму - они предназначены для формирования отчетов по остаткам и оборотам товаров, в том числе и суммовых, но никак не для получения цен товаров. Вариант 1. Самый аскетичный вариант. Подразумевается, что все документы хранятся в общей таблице Doc, а их табличные части в одной для всех таблице DocTable. Для примера к таблице Doc "пристёгнуты" справочники Контрагентов и Складов, аналогично по мере необходимости добавляются и другие справочники, например: валют, причин списания, корреспондентских счетов и пр. Отчеты об остатках и движениях товаров формируются из этих таблиц, причем запросы для их формирования будут большими и трудными в восприятии. И при каждом сколько-нибудь существенном изменении таблиц или добавлении нового вида документов мы получим массу проблем с доведением этих запросов. Плюсы: - простая и компактная схема БД. Минусы: - много избыточной информации. Многие документы имеют исключительно свои поля, которые не используются в других документах. И чем дальше развивается программа, тем больше будет таких полей. В качестве возможного развития подобной схемы иногда предлагается хранить все поля, отличающие один документ от другого, в отдельной (или отдельных) таблице(-ах) метаданных, а в таблице Docs оставить только общие поля. Но подобная схема отрицательно влияет на и без того невысокое быстродействие данного варианта, и умаляет единственный его плюс - простоту. - при использовании выделенного sql сервера для обработки и хранения данных, придется писать громоздкие и неудобные в восприятии триггеры на таблицы Doc и DocTable. - весьма неудобные запросы для получения остатков и оборотов. - по мере роста базы очень большое время получения остатков и оборотов. Вариант 2. Те же, и по одной таблице на каждый документ. Теперь одной форме (или нескольким почти идентичным формам) документа у нас соответствует одна таблица в базе. Это значительно упрощает поддержку и развитие программы, изменяя один документ, мы перестаем получать паровоз изменений, которые могут потребоваться во всех остальных формах, обслуживающих прочие документы. Плюсы: - простая схема БД. Минусы: - неудобные запросы для получения остатков и оборотов. - по мере роста базы очень большое время получения остатков и оборотов. Примечание Оба эти варианта очень просты, но отличаются сложностью обработки информации и получения отчетов. Поэтому имеет смысл делать одну или несколько служебных таблиц, которые заполняются по мере редактирования таблиц документов. При работе с полноценным sql-сервером их заполнение разумно делать триггерами, при использовании же "чистого" Access, они заполняются в процедурах обслуживания событий форм: при удалении, редактировании и создании записей. В последнем случае так же нельзя будет забывать обо всех других способах изменения таблиц, например, при импорте данных, загрузках из ТСД и прочее. Во всех этих случаях надо будет изменять и служебные таблицы. Вариант 3. Добавляем таблицу операций (или проводок). "Развивать" я буду вариант 2, но не вижу препятствий и для соответствующих изменений варианта 1. При каждом введении, удалении или редактировании документа, программа должна обеспечивать соответствующее изменение в таблице операций. Приходные документы будут добавлять записи операций с положительным количеством, расходные - с отрицательным, а документы на перемещения между складами будут делать по две записи на каждую свою строку: одну для прихода на склад-получатель, и одну для расхода со склада-источника. Плюсы: - очень простые и удобные запросы для получения остатков и оборотов товаров. Минусы: - При достижении определенных (и не очень больших, кстати) объемов товарооборота, все эти запросы начнут здорово тормозить. И особенно в случаях, когда данные будут располагаться на другом компьютере в сети, либо потребуется получать остатки при вводе документов, производительности этого варианта окажется недостаточно, и вам придется развивать программу дальше. Вариант 4. Операции (проводки) + текущие остатки. Этот (как и следующий) вариант гораздо удобнее делать, используя sql сервер, с помощью триггеров на таблицу проводок. При каждом изменении таблицы проводок автоматически пересчитываются остатки товаров. Текущие остатки хранятся на "последний момент". Чтобы посчитать остатки на любую прошедшую дату, или получить отчеты по движению товаров, используются те же запросы, что и в варианте 3. Отсюда получаем: Плюсы: - очень простые и удобные запросы для получения остатков и оборотов товаров. - очень быстрые запросы на получение текущих остатков по товарам (особенно важно, если вы собираетесь контролировать отрицательные остатки, или показывать пользователю текущие остатки товаров при вводе расходных документов). Минусы: - Довольно скоро запросы на остатки задним числом могут начать работать ощутимо медленно. Вариант 5. Периодические остатки. В таблицу остатков добавляем поле "дата остатков". Текущие остатки, если они нужны, хранятся на дату, в которой программа работать не будет, например, на 01.01.1901. А с определенной периодичностью (зависящей, в первую очередь, от объемов товарооборота) создаются промежуточные остатки на начало этого периода. Например, на первое число каждого месяца. С введением периодических остатков мы получаем: Плюсы: - стабильное и небольшое время получения остатков и оборотов за любые даты. - очень быстрое получение "текущих остатков". Минусы: - запросы на получение оборотов и остатков на определенную дату должны будут считать входящие (а возможно и исходящие) остатки от даты ближайшего предыдущего периода рассчитанных остатков, что здорово их усложняет. - изменение документов "задним числом" обязательно должно инициировать пересчет всех необходимых остатков. Что также требует довольно непростых обработок, и, кроме того, приводит к подчас очень приличному времени перерасчетов. Настолько приличному, что, например, в 1С 7.7 для решения этой проблемы вводится механизм "последовательности документов", который предназначен, в сущности, для того, чтобы в нужный момент сказать пользователю: "раз вы не потратили время на перепроведение, то мы умываем руки и не обещаем правильных оборотов". Другим вариантом решения этой проблемы может послужить полный запрет редактирования документов "закрытого периода". Чтобы отредактировать документ из закрытого периода, надо будет вводить либо механизм открытия периода, либо практику сторнирующих документов. - программа уже становится не наколенной поделкой, а довольно непростым в написании продуктом. Примечание Дальнейшее развитие базы возможно приведет вас к необходимости партионного учета. То есть товар из очередного поступления надо отличать от остальных поступлений того же товара. Например и как минимум по сроку годности. Этот вариант я (пока или совсем) описывать здесь не буду. Кроме того, я не затрагиваю массу вопросов, которые возникнут, если вам потребуется обеспечивать одновременную работу нескольких пользователей: журналирование изменений, репликацию удаленных баз и др. Это отдельная, очень большая и непростая тема. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2013, 15:48 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
Geo, картинок, почему-то, нет ... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2013, 16:05 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
qwerty112Geo, картинок, почему-то, нет ... гм. Сейчас поправлю... Джудж место экономит и картинки в удаленных постах не хранит. Придется выложить их ниже ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2013, 16:06 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2013, 16:06 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2013, 16:07 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2013, 17:14 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2013, 17:16 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
Geo, Сразу же хочется Вас попросить привести алгоритм контроля отрицательных остатков товара в Ваших структурах. Сможете? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 01:27 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
Geo, авторЭтот вариант гораздо удобнее делать, используя sql сервер, с помощью триггеров на таблицу проводок. При каждом изменении таблицы проводок автоматически пересчитываются остатки товаров. Остатки можно хранить на "последний момент" и/или на определенные периоды, например, на 1-е число каждого месяца. Можно ли вообще не хранить остатки, а рассчитывать их на лету для товара в расходной накладной? Как при этом сделать контроль отрицательных остатков в MS Access? На мой взгляд невозможно вообще сделать контроль отриц. остатков товаров в MS Access. Я пытался. У меня не получилось. Потому-что в Аксессе нет транзакции на чтение. Пока я читаю данные из таблицы остатков, кто-то теоретически их может изменить в этой таблице, в момент чтения. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 01:36 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
2Geo Можешь простыми простыми словами сказать - какие семь красных линий ты хочешь изобразить перпендикулярно? О чем этот топик, для кого и зачем? Чтобы начать с чего-нибудь простого - есть хоть какие-нибудь осмысленно озвучиваемые соображения, по которым в складской базе "документы" оказались центральным логическим понятием? Если "документов" достаточно - логика какого сорта заставляет довешивать к ним "операции"? Там что-то с докаументами не так или это "денормализация"? Вот я ничего не знаю про складской учет. (Действительно не знаю не знаю - не занимался этим). По прочтении топика - какую главную умность, как человек не занимавшийся никогда складским учетом, я должен усвоить? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 02:26 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
пардон за дефекты речи в виде заиканий. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 02:28 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
Складской учёт, а товаров нет. Как это понимать? Учёт документов? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 04:15 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
t1002Складской учёт, а товаров нет. Как это понимать? Учёт документов? таб. dNomenkl ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 04:17 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
qwerty112, Разве в номенклатуре не может быть несколько товаров? А следовательно учёта товаров тут нет, есть учёт документов. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 04:26 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
Geo Вариант 1. .... Вариант 2. ... исключительно, "для полноты коллекции", можно ещё упомянуть "промежуточный" между в.1 и в.2 вариант организации структуры "Документ", когда есть одна табл.Docs с общими для всех видов документов реквизитами, и с ней связанны 1:(1,0) 3-и таб.с "уникальными" для этого документа реквизитами, хотя и советовать делать так (по этому, промежуточному варианту) в Акцессе , имхо, стоит в самую посл.очередь --- ...и так, если из "вредности" только, ещё : поле Summ, в DocTable - и в вариантах без "Регистра" (Operations) - "не одобряю" :) , а в вариантах с "Регистром" - точно лишнее ... имхо, конечно ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 04:27 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
t1002qwerty112, Разве в номенклатуре не может быть несколько товаров? А следовательно учёта товаров тут нет, есть учёт документов. да нее, это ты не про ту номенклатуру говоришь, в смысле - есть понятие "Номенклатура изделия" - то из чего это изделие состоит, а тут другая "Номенклатура" - ассортимент, что ли :) вообщем, 1С-ники, например, "сплош и рядом", называют то, что "честный акцессник" назовёт "СправочникТоваров" - справочник "Номенклатура" ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 04:38 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
qwerty112, Так я не 1с-ник, поэтому не понимаю, как справочник товаров превратился в номенклатуру. Вообще действительно всё смахивает на логику 1с. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 04:42 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
сосед акцессник, моё имхо, если не возражаете :) сосед акцессникО чем этот топик, для кого поиск по "склад" даёт 9-ть страниц тем сосед акцессники зачем? как "стартовый пинок" в нужном направлении сосед акцессникЧтобы начать с чего-нибудь простого - есть хоть какие-нибудь осмысленно озвучиваемые соображения, по которым в складской базе "документы" оказались центральным логическим понятием? схема описывает "движение по складам" инициируется и фиксируется это "движение" - документами, ... вроде бы всё логично ... сосед акцессникЕсли "документов" достаточно - логика какого сорта заставляет довешивать к ним "операции"? Там что-то с докаументами не так или это "денормализация"? денормализация (это "регистр" 1С-вский) простота и скорость формирования запросов(не в смысле query, а в смысле вопрос-ответ) на остатки Остатки (Rests) - из тех же соображений (1С-вские "Промеж.итоги" или как_там_их ...) сосед акцессникПо прочтении топика - какую главную умность, как человек не занимавшийся никогда складским учетом, я должен усвоить? когда понадобится занятся складским учетом, и нужно будет делать схему данных этого "занятия", нужно НЕ изобретать "велик" (не поедет :) ), а пройти в этот топик и выбрать на "свой вкус", и "допиливать" уже её под конкретные требования, конкретного/своего БП ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 04:44 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
t1002qwerty112, Так я не 1с-ник, поэтому не понимаю, как справочник товаров превратился в номенклатуру. Вообще действительно всё смахивает на логику 1с. это - да, это - есть только, вот могу сказать, что сколько не видел вариантов этого "Склада", все "рабочие" - с такой логикой (с такой же сутью - документы, регистры, ... - пусть как угодно по другому названными, но с таким смыслом) с другой - тоже есть, но почему-то "включаеш - не работает" :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 04:52 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
qwerty112с другой - тоже есть, но почему-то "включаеш - не работает" :) У меня работает. Не знаю насколько она другая, но я там отталкиваюсь от товара и его прихода на склад. Правда склад - только часть техпроцесса. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 05:16 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
t1002qwerty112с другой - тоже есть, но почему-то "включаеш - не работает" :) У меня работает. Не знаю насколько она другая, но я там отталкиваюсь от товара и его прихода на склад. Правда склад - только часть техпроцесса. нуу, давай - показуй схему, посмотрим :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 05:19 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
qwerty112, Это я делать не буду, не даст она ничего, отдельно склад оттуда я не вырежу, он встроен в техпроцесс, да и имена полей описывать тоже долго и хлопотно. Плюс свои нюансы, но никаких документов там нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 06:47 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
+1 Respect автору топика за тему:) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 09:56 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
на каждый локейшн своя таб-ца ? как-то меня сомнения разбирают.... карту товара я не увидел... у каждой карты могет быть вариант редакции - у меня например для описания одной сучности может из года в год меняться код - редакция описательной части карты просто необхоима поскольку один код становится актуальным другой архивным... почему не держать актуальные остатки в виде отдельного справочника... ? скрость и удобство визуализации увеличивается в разы сложновато как-то засхемить всю дурь в которой приходится ползать. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 10:11 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
Вариант 1 - не нахожу причины для подобной структуры бд. Метаданные отлично хранятся в отдельной таблице. Остальные варианты надо рассматривать не с точки зрения эстетической красоты, а с точки зрения запросов пользователя, как правильно описал Geo, каждый вариант характеризуется длительностью(малой или большой) аналитики по динамике оборота, остатков и тд(допустим, изменения остатков за 3 года в динамической базе - достаточно печальный отчет, который вынудит программистов раз в период так или иначе агрегировать данные за период) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 10:49 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
2 Nebo Сразу же хочется Вас попросить привести алгоритм контроля отрицательных остатков товара в Ваших структурах. Сможете? Нет, не смогу. Этот топик имел целью лишь привести структуры бд их применимость, а писать на каждый вариант рабочую базу, да еще и учитывающую поднимаемые вами ниже вопросы, это работа не на одну неделю. В целом же про остатки я упоминаю в каждом варианте. Можно ли вообще не хранить остатки, а рассчитывать их на лету для товара в расходной накладной? Как при этом сделать контроль отрицательных остатков в MS Access? Всё писал в первом посте. На мой взгляд невозможно вообще сделать контроль отриц. остатков товаров в MS Access. Я пытался. У меня не получилось. Потому-что в Аксессе нет транзакции на чтение. Пока я читаю данные из таблицы остатков, кто-то теоретически их может изменить в этой таблице, в момент чтения. Товароучетные системы писали и до MS Access, вообще без каких бы то ни было транзакций. И с отрицательными остатками, уверен, боролись. Сосед-акцессник Можешь простыми простыми словами сказать - какие семь красных линий ты хочешь изобразить перпендикулярно? О чем этот топик, для кого и зачем? На этот вопрос уже ответил Qwerty123, спасибо ему большое :) Чтобы начать с чего-нибудь простого - есть хоть какие-нибудь осмысленно озвучиваемые соображения, по которым в складской базе "документы" оказались центральным логическим понятием? Если "документов" достаточно - логика какого сорта заставляет довешивать к ним "операции"? Там что-то с докаументами не так или это "денормализация"? Таблица документов расположена "в центре" по двум причинам. Во-первых, мне так было удобнее рисовать. Во-вторых, очень часто при первом создании складской бд, люди приходят к схемам, похожим на 1ю или 2ю. Почему добавлена таблица "операций", я указал в разделе "Вариант 3". Если вам нравится этот термин, то да - это классический образец денормализации. Вот я ничего не знаю про складской учет. (Действительно не знаю не знаю - не занимался этим). По прочтении топика - какую главную умность, как человек не занимавшийся никогда складским учетом, я должен усвоить? Как человек, никогда не занимавшийся - никакую. Если когда-нибудь придется заниматься, то этот топик, возможно, задаст направление для размышлений, сподвигнет провести необходимые тесты производительности и т.д. Авось пригодится, стало быть. t1002 Так я не 1с-ник, поэтому не понимаю, как справочник товаров превратился в номенклатуру. Вообще действительно всё смахивает на логику 1с. Как обычно, отдельная благодарность Alvk за его неоценимый вклад в обсуждение вопросов форума. Видите ли, дорогая редакция. От изменения синонима в названии работа таблицы меняется не очень сильно. Я специально консультировался. А термин "Товары" мне кажется менее подходящим, чем "Номенклатура". Потому что "уборку мусора", "резку металла" и прочие работы и услуги, даже за уши не притянешь к "товарам". P.S. Вариант 4, я, вероятно, на досуге разделю на 2 подварианта. Когда хранятся только "текущие остатки" - "Отдельный справочник", как пишет "SangYong", и когда в процессе работы создаются промежуточные остатки. Всё-таки отличий между ними довольно много. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 11:01 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
упустил 2 qwerty123 [i]...и так, если из "вредности" только, ещё : поле Summ, в DocTable - и в вариантах без "Регистра" (Operations) - "не одобряю" :) , а в вариантах с "Регистром" - точно лишнее ... [/i] В документах Сумма необходима категорически. Тоже пресловутая денормализация, но потенциальной головной боли с различными контрагентами и инстанциями из-за объяснений "почему расходится на копейку" гораздо больше. Я у себя рассчитываю сумму, если вводилась цена, и рассчитываю цену, если вводилась сумма. А храню обязательно всё. Никакие округления не должны менять однажды введенный первичный документ. В "регистрах" же наоборот - нужна сумма, но бессмысленна цена. Цену оттуда считать не придется никогда, эти таблицы нужны только для формирования остатков/оборотов, а суммовые остатки нужны часто. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 11:08 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
2 Geo авторНа этот вопрос уже ответил Qwerty123, спасибо ему большое :) я-то, по наивности, расчитывал услышать начальника транспортного цеха. авторПочему добавлена таблица "операций", я указал в разделе "Вариант 3". в разделе "вариант3" есть слова про "проводки", в картинке - "операции". как понять - это про одно и тоже или нет? Хотел услышать примерно вот о чем - если проводки "надо" - почему схемы без проводок-операций признаются за допустимые в том смысле, что технически правильные. Если без "проводок" можно, значит их наличие - размножение сущностей. Если, наоборот, их "надо", то факт их существования сам по себе представляет какю-то существенную часть моделируемых бизнес-процессов. авторЕсли вам нравится этот термин, то да - это классический образец денормализации. Нет, не нравится термин. До тех пор, пока не ясна уместность его применения. Ладно. извини за вторжение. Не буду я читать этот топик. Даже когда мне станет "надо". Вот почему - в тот момент, когда мне станет "надо", - у меня будет более или менее определенный контекст - в виде набора пользователеей, их ролей и целей по отношению к программе. А также более или мне внятное представление о наборе бизнез-процессов, составляющих область будущей задачи. Вряд ли мне захочется читать в тот момент про сферических коней в вакууме. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 11:41 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
boobyв разделе "вариант3" есть слова про "проводки", в картинке - "операции". как понять - это про одно и тоже или нет?Да, это одно и то же. Поправлю. boobyХотел услышать примерно вот о чем - если проводки "надо" - почему схемы без проводок-операций признаются за допустимые в том смысле, что технически правильные. Если без "проводок" можно, значит их наличие - размножение сущностей. Если, наоборот, их "надо", то факт их существования сам по себе представляет какю-то существенную часть моделируемых бизнес-процессов."Надо их", или не надо - решать исключительно автору программы. Причины и следствия введения таблицы операций-проводок я указал. boobyЛадно. извини за вторжение. Не буду я читать этот топик. Даже когда мне станет "надо". Вот почему - в тот момент, когда мне станет "надо", - у меня будет более или менее определенный контекст - в виде набора пользователеей, их ролей и целей по отношению к программе. А также более или мне внятное представление о наборе бизнез-процессов, составляющих область будущей задачи. Вряд ли мне захочется читать в тот момент про сферических коней в вакууме.Ну и дай бог тебе жену хорошую. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 11:47 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
На мой взгляд контроль отрицательных остатков - это самое слабое место. И это очень важный момент, особенно при сетевой работе. Настоящий 100% контроль на лету в Аксессе сделать, по моему, невозможно. Потому-что запрос на чтение и запрос на изменение в рамках одной транзакции невозможны в Аксессе. А тогда и нет смысла писать склад на Аксессе. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 13:19 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
NeboНа мой взгляд контроль отрицательных остатков - это самое слабое место. И это очень важный момент, особенно при сетевой работе. Настоящий 100% контроль на лету в Аксессе сделать, по моему, невозможно. Потому-что запрос на чтение и запрос на изменение в рамках одной транзакции невозможны в Аксессе. А тогда и нет смысла писать склад на Аксессе. Само собой, все написанные на аксе складские программы - лишь выдумка больного воображения разработчиков и пользователей ;))) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 13:37 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
ОзверинNeboНа мой взгляд контроль отрицательных остатков - это самое слабое место. И это очень важный момент, особенно при сетевой работе. Настоящий 100% контроль на лету в Аксессе сделать, по моему, невозможно. Потому-что запрос на чтение и запрос на изменение в рамках одной транзакции невозможны в Аксессе. А тогда и нет смысла писать склад на Аксессе. Само собой, все написанные на аксе складские программы - лишь выдумка больного воображения разработчиков и пользователей ;))) :) Ну я же Вам по существу пишу про транзакцию. А Вы проверьте сперва. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 14:02 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
NeboОзверинпропущено... Само собой, все написанные на аксе складские программы - лишь выдумка больного воображения разработчиков и пользователей ;))) :) Ну я же Вам по существу пишу про транзакцию. А Вы проверьте сперва. Сценарий не понял. Учитывая, что vba - однопоточный, то выполнение изменение и чтение - последовательные операции. В таком случае для транзакции чтение тех данных, которые были изменены в текущей транзакций - стандартный сценарий. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 14:06 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
GeoТак я не 1с-ник, поэтому не понимаю, как справочник товаров превратился в номенклатуру. Вообще действительно всё смахивает на логику 1с. От изменения синонима в названии работа таблицы меняется не очень сильно. Я специально консультировался. А термин "Товары" мне кажется менее подходящим, чем "Номенклатура". Потому что "уборку мусора", "резку металла" и прочие работы и услуги, даже за уши не притянешь к "товарам". Мне уже qwerty112 растолковал, что у вас понятие Номенклатура обозначает Товары. Можно было уже не писать. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 15:57 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
NeboА тогда и нет смысла писать склад на Аксессе. А народ и не знает, пойду скажу, пусть на Эксель обратно переходят ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 16:00 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
Версия 1 (для архива)В этом топике я опишу несколько вариантов структуры складской БД, от самого простого до довольно "продвинутых" видов, и постараюсь в нескольких словах указать их плюсы и минусы. Возможно, со временем кто-то возьмется окультурить изложенную ниже информацию и довести ее до вида, пригодного к опубликованию в FAQ. Несколько оговорок: - русскоязычные названия полей, используемые в схемах, приведены исключительно для наглядности. Я рекомендую пользоваться во-первых, одним языком при описании структуры таблиц, во-вторых, языком английским. Рекомендую я это с точки зрения удобства написания программ. При использовании англоязычных названий вам придется реже переключать раскладку клавиатуры, и дело будет идти быстрее. Впрочем, никаких других причин не пользоваться русскими названиями, включая религиозные, я не знаю. - справочники Складов, Контрагентов и прочие я описываю в линейном виде, хотя сам предпочитаю делать их иерархическими, по аналогии с приведенной структурой справочника Номенклатуры. Поскольку организация иерархии - это отдельная и объемная тема, то останавливаться на ней здесь я не буду. Вариант 1. Самый аскетичный вариант. Подразумевается, что все документы хранятся в общей таблице Doc, а их табличные части в одной для всех таблице DocTable. Для примера к таблице Doc "пристёгнуты" справочники Контрагентов и Складов, аналогично по мере необходимости добавляются и другие справочники, например: валют, причин списания, корреспондентских счетов и пр. Отчеты об остатках и движениях товаров формируются из этих таблиц, причем запросы для их формирования будут большими и трудными в восприятии. И при каждом сколько-нибудь существенном изменении таблиц или добавлении нового вида документов мы получим массу проблем с доведением этих запросов. Плюсы: - простая и компактная схема БД. Минусы: - много избыточной информации. Многие документы имеют исключительно свои поля, которые не используются в других документах. И чем дальше развивается программа, тем больше будет таких полей. - при использовании выделенного sql сервера для обработки и хранения данных, придется писать громоздкие и неудобные в восприятии триггеры на таблицы Doc и DocTable. - весьма неудобные запросы для получения остатков и оборотов. - по мере роста базы очень большое время получения остатков и оборотов. Вариант 2. Те же, и по одной таблице на каждый документ. Теперь одной форме (или нескольким почти идентичным формам) документа у нас соответствует одна таблица в базе. Это значительно упрощает поддержку и развитие программы, изменяя один документ, мы перестаем получать паровоз изменений, которые могут потребоваться во всех остальных формах, обслуживающих прочие документы. Плюсы: - простая схема БД. Минусы: - неудобные запросы для получения остатков и оборотов. - по мере роста базы очень большое время получения остатков и оборотов. Примечание Оба эти варианта очень просты, но отличаются сложностью обработки информации и получения отчетов. Поэтому имеет смысл делать одну или несколько служебных таблиц, которые заполняются по мере редактирования таблиц документов. При работе с полноценным sql-сервером их заполнение разумно делать триггерами, при использовании же "чистого" Access, они заполняются в процедурах обслуживания событий форм: при удалении, редактировании и создании записей. В последнем случае так же нельзя будет забывать обо всех других способах изменения таблиц, например, при импорте данных, загрузках из ТСД и прочее. Во всех этих случаях надо будет изменять и служебные таблицы. Вариант 3. Добавляем таблицу проводок. "Развивать" я буду вариант 2, но не вижу препятствий и для соответствующих изменений варианта 1. При каждом введении, удалении или редактировании документа, программа должна обеспечивать соответствующее изменение в таблице проводок. Приходные документы будут добавлять записи проводок с положительным количеством, расходные - с отрицательным, а документы на перемещения между складами будут делать по две записи на каждую свою строку: одну для прихода на склад-получатель, и одну для расхода со склада-источника. Плюсы: - очень простые и удобные запросы для получения остатков и оборотов товаров. Минусы: - При достижении определенных (и не очень больших, кстати) объемов товарооборота, все эти запросы начнут здорово тормозить. И особенно в случаях, когда данные будут располагаться на другом компьютере в сети, либо потребуется получать остатки при вводе документов, производительности этого варианта окажется недостаточно, и вам придется развивать программу дальше. Вариант 4. Проводки+остатки. Этот вариант гораздо удобнее делать, используя sql сервер, с помощью триггеров на таблицу проводок. При каждом изменении таблицы проводок автоматически пересчитываются остатки товаров. Остатки можно хранить на "последний момент" и/или на определенные периоды, например, на 1-е число каждого месяца. Плюсы: - стабильное и небольшое время получения остатков и оборотов. Минусы: - запросы на получение оборотов должны будут считать входящие (а возможно и исходящие) остатки от даты ближайшего предыдущего периода рассчитанных остатков, что здорово их усложняет. - изменение документов "задним числом" обязательно должно инициировать пересчет всех необходимых остатков. Что также требует довольно непростых обработок, и, кроме того, приводит к подчас очень приличному времени перерасчетов. Настолько приличному, что, например, в 1С 7.7 для решения этой проблемы вводится механизм "последовательности документов", который предназначен, в сущности, для того, чтобы в нужный момент сказать пользователю: "раз вы не потратили время на перепроведение, то мы умываем руки и не обещаем правильных оборотов". - программа уже становится не наколенной поделкой, а довольно непростым в написании продуктом. Примечание Дальнейшее развитие базы возможно приведет вас к необходимости партионного учета. То есть товар из очередного поступления надо отличать от остальных поступлений того же товара. Например и как минимум по сроку годности. Этот вариант я (пока или совсем) описывать здесь не буду. Кроме того, я не затрагиваю массу вопросов, которые возникнут, если вам потребуется обеспечивать одновременную работу нескольких пользователей: журналирование изменений, репликацию удаленных баз и др. Это отдельная, очень большая и непростая тема. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 16:11 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 16:41 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
NeboНастоящий 100% контроль на лету в Аксессе сделать, по моему, невозможно. Потому-что запрос на чтение и запрос на изменение в рамках одной транзакции невозможны в Аксессе. А тогда и нет смысла писать склад на Аксессе Ну, на акцессе лучше клиент, а база на сервере. Но даже если на акцессе: (мы говорим о складе) 1. Реально подбор расхода в документ - длительный процесс, товар можно выбрать, удалить, изменить количество - и все это еще не сохранив расход - и все это с нескольких рабочих мест. Значит надо завести буферную/временную таблицу (БТ) куда писать ИД товара, кол-во и ИД юзера. 2. При выборе товара показывать его остатки с учетом БТ 3. При сохранении документа - блокировать БТ, а потом удалять отработавшего Юзера из БТ. 4. Другие спокойно ждут, пока БТ блокирована. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 17:33 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
3а. + При сохранении - проверять чтоб остатки не ушли в минус. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 18:01 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
2слова про партии, без них склад мне не очень понятен. Потому что на реальном складе обычно интересно, с какого прихода товар мы продаем. Ну и выкидывать ненужные "закрытые" партии из расчетов тоже приятно, можно быстрее посчитать остатки Все документы одинаковы, но некоторые документы одинаковее других. А именно приходные. Партиеобразующие. Если пытатся считать по партиям, то таблички получаются примерно такие Док- номер, дата, Откуда, Куда, Тип Документа ДокДет Ссылка на док,ссыдка на Партия, количество, Цена Партия- Товар, НДС, Таможенная и реестровая всякая фигня Товар- Наименование ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 19:32 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
кто-то готов внятно объяснить почему "остаток на складе" не может "уйти в минус" назовите хотя бы одну объективную причину, почему этого нельзя допускать. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2013, 23:50 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
зы: У нас "отрицательный остаток" - перманентное состояние. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2013, 00:08 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
Что то я не увидел особо продвинутого вида связей по складу. Основной упор идет на дополнительные таблицы для хранения истории по документам. Могу помочь с блоком , который описывает все что происходит до склада. Начиная с зарубежного поставщика и нарезке коркодов с комплектами и коробами + транспорт+таможня+все остальное что составляет сущность товародвижения и начисления себестоимости от фабрики до вашей точки отсчета. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2013, 00:10 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
полиномкто-то готов внятно объяснить почему "остаток на складе" не может "уйти в минус" назовите хотя бы одну объективную причину, почему этого нельзя допускать. полином - это не вопрос "правильного" или "неправильного" программирования. Фигура сия складывается из двух пальцев - первый указует на определение того, что есть "остаток" , второй на на "бизинес-правило" пользователя сего определения. С точки зрения кладовщика он не может опустить более того, что есть в наличии - его бизнес-правило > 0? а у отдела приема заказов ноль может быть скорректирован на объем двухнедельных контрактных поступлений. тип остатка может быть там где-то запрятан - то ли по строкам, то ли по столбцам. Для вакуумного случая - совершенно не важно - есть там тп остатка, или нет. И вопрос не в том, может ли остаток быть меньше нуля, а в том, как поступить, в случае, когда заявлено требование к многопользователькой системе, что остаток некого типа меньше нуля не должен быть. Было сформулировано профессиональное мнение, что поступить никак нельзя. Видимо, скоро кто-нибудь сообщит, что и котенка линией нарисовать нельзя. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2013, 00:13 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
nord-woolfзы: У нас "отрицательный остаток" - перманентное состояние. и это совершенно нормально :) ИМХО ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2013, 00:25 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
и это совершенно нормально Да, выпишем два расхода фирме А и Б, а кладовщик сам решит, кому не положить, того, чего нет. Ну и себестоимость/торговое наложение непонятно как считать... А так да, у всех они есть, только не все признаются. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2013, 00:37 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
?????и это совершенно нормально Да, выпишем два расхода фирме А и Б, а кладовщик сам решит, кому не положить, того, чего нет. ... И обе фирмы (и третья, и четвертая, и ...) получат (реально, так сказать, в натуре) то, что им выписано. Такая вот, понимаешь, арифметика ... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2013, 00:42 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
сосед акцессникзаявлено требование к многопользователькой системе, что остаток некого типа меньше нуля не должен быть. ну и что тогда? систему переделывать или сокращать сроки поставки от поставщика или сроки производства продукции? или увеличивать сроки отгрузки заказа покупателю, в случае если требуемого изделия пока нет или оно еще не сделано? если не ошибаюсь, в NorthWind'e это называется ReorderingLevel. это такое количество, при котором следует заказать новую поставку. если "остаток на складе" это разница между "заказываемые товары" и "поставляемые товары", то она может быть хоть больше нуля, хоть меньше хоть равна нулю. тут нет никакой трагедии. если "остаток на складе" это разница между "поступившим [de facto] товаром" и "выданным [de facto] товаром", то она может быть меньше нуля если только товар производится на складе из воздуха. а если "остаток на складе" это разница между "поступившим [de facto] товаром" и "поставляемым товаром" так может стоит "что-то в бухгалтерии подправить"... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2013, 00:44 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
автор"что-то в бухгалтерии подправить"... во-во, пральное решение. а то ходють, панимаешь к праграммистам, голову дурят и дурят. сказано нельзя - вот идите отсюда направо и бюстгалтерию правьте. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2013, 00:58 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
авторесли только товар производится на складе из воздуха. эта почти правильно. "из воздуха" - это по волшебству, методом материализации чувственных идей. Вот именно этим программист и занимается - создает материализаторы чувственных идей в виде программных изделий. Так что не из воздуха, а по воле программиста. И обычно, не в части прихода, а в части расхода. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2013, 01:21 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
Shark2слова про партии, без них склад мне не очень понятен. Потому что на реальном складе обычно интересно, с какого прихода товар мы продаем. Ну и выкидывать ненужные "закрытые" партии из расчетов тоже приятно, можно быстрее посчитать остатки Все документы одинаковы, но некоторые документы одинаковее других. А именно приходные. Партиеобразующие. Если пытатся считать по партиям, то таблички получаются примерно такие Док- номер, дата, Откуда, Куда, Тип Документа ДокДет Ссылка на док,ссыдка на Партия, количество, Цена Партия- Товар, НДС, Таможенная и реестровая всякая фигня Товар- Наименование Осталось удостовериться, что заложенная в программу логику соблюдается на складе, и там берут не какую попало коробку, а именно из нужной партии. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2013, 08:21 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
2 Geo кстати: авторP.S. Вариант 4, я, вероятно, на досуге разделю на 2 подварианта. Когда хранятся только "текущие остатки" - "Отдельный справочник", как пишет "SangYong", и когда в процессе работы создаются промежуточные остатки. Всё-таки отличий между ними довольно много. Отличий между ними настолько существенны, что требуют этого - выноса текущих остатков в отдельный справочник - не делать вне точно определенного контекста. Пальцев на асфальте три. 1) "текущие остатки" - нечто, завязанное на понятие "сейчас". Для кладовщика на конкретном складе - "сейчас" - вменяемо определяемое понятие - гляди на часы и оглядывайся по сторонам на полки. То что видишь, то и есть сейчас. Для "продавцов", "плановиков", "бухгалтеров" ничего близко похожего на поняте "сейчас" нет. Все что угодно - вроде учетного периода, дня, квартала - есть, а "сейчас" - нет. 2) Второй палец складывается, методом применения аналогии, так: остатки ты рожаешь как способ развития модели задачи. Пойнт здесь такой - пока никто не сказал - "хочу неотрицательные остатки" - остатки всего лишь "денормализация" - т.е. твоя личная фантазия про производительность системы. Но, внезапно, сразу после заявления хотелки, остатки из "денормализации" превращаются в ресурс - обязательную содержательную часть модели, обремененную алгоритмической поддержкой заявленного бизнес-требования. Добровольно выделяя текущие остатки в отдельную таблицу ты рожаешь специальный ресурс под который, судя по всему, у тебя еще нет вменяемых бизнес-требований, требующих такого выделения. При этом добровольно повышаешь сложность реализации ранее взятых на себя обязательств по поддержанию остатков. ( после того, как появляется понятие "сейчас" - нужно дать ответ на вопрос - как работает процедура сведения остатков на времени до "сейчас", "сейчас" и после "сейчас". И почему, например, нельзя заводить (или как можно) операции, относящиеся к после "сейчас". ) 3) Если поняте "сейчас" оказывается хорошо и прозрачно определено для автоматизируемого бизнеса, то моя гипотеза состоит в том, что понятие "таблица остатков", отличных от "сейчас" становится, с высокой вероятностью, излишеством, желательным к удалению с целью упрощения поддерживаюх процедур. Как-то так. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2013, 16:42 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
booby, "сейчас" = /select Max(date) from совокупность проведенных документов/ Сурово ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2013, 17:28 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
booby"текущие остатки" - нечто, завязанное на понятие "сейчас". Для кладовщика на конкретном складе - "сейчас" - вменяемо определяемое понятие - гляди на часы и оглядывайся по сторонам на Для "продавцов", "плановиков", "бухгалтеров" ничего близко похожего на поняте "сейчас" нет. Все что угодно - вроде учетного периода, дня, квартала - есть, а "сейчас" - нет.Я не против. booby<...> развития модели задачи <...> Пойнт здесь такой <...> содержательную часть модели, обремененную алгоритмической поддержкой заявленного бизнес-требования. <...> специальный ресурс под который <...> нет вменяемых бизнес-требованийи т.д., и т.п. Уважаемый Booby. Есть ли у вас силы и время превратить описанные мною, цитирую: "несколько вариантов структуры складской БД" в законченную и вменяемую (читай, понятную и годную для публикации в FAQ) статью, необремененную россыпью красивых и длинных слов, или со словами, вынесенными в четкие и понятные определения? Если да, я с удовольствием помогу в оформлении и редактировании. Если нет, освободите меня, пожалуйста, от гипотетических споров ради споров. авторпонятие "таблица остатков", отличных от "сейчас" становится, с высокой вероятностью, излишеством, желательным к удалению с целью упрощения поддерживаюх процедур.Да ради бога. Набросайте годную и простую структуру складской бд, и приведите ее в качестве альтернативы. Уверен, ее с интересом обсудят, возможно укажут и на её плюсы и минусы. Или только на плюсы. Как-то так, ага. ) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2013, 18:03 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
ЗЫ. авторP.S. Вариант 4, я, вероятно, на досуге разделю на 2 подварианта. Когда хранятся только "текущие остатки" - "Отдельный справочник", как пишет "SangYong", и когда в процессе работы создаются промежуточные остатки. Всё-таки отличий между ними довольно много. Разнес уже, кстати. Вчера еще. И еще пару штрихов cделал, по мотивам увиденных замечаний ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2013, 18:09 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
2 Geo Не понимаю я в складах ничего, и не знаю о них даже приблизительно. Поэтому схему "набросать" не могу. Ладно, раз мне нельзя задавать вопросы на понимание и высказывать соображения, то и Вам не болеть. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2013, 18:24 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
boobyЛадно, раз мне нельзя задавать вопросы Ах вот оно что... Я просто за оборотами "ты рожаешь" и "твоя личная фантазия" не разглядел знаков вопроса. Тогда, раз boobyмоя гипотеза состоит в том, что понятие "таблица остатков", отличных от "сейчас" становится, с высокой вероятностью, излишеством, желательным к удалению с целью упрощения поддерживаюх процедур, то докладываю: описание этой гипотезы более-менее подходит под обновленный "вариант 4" стартового поста. И в нем же написано, для чего вводится следующий вариант. Собственно, протестировать, на каком количестве записей на железе выбранной могучести вариант 4 начнет тормозить, очень легко. Дальше "пальцы складываются" на калькуляторе, и решается, надо ли ускорять расчеты в конкретном выбранном случае в ущерб простоте реализации, или не надо. Я по мере сил пытался это донести. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2013, 18:32 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
Geo, за труд всегда надо быть благодарным, поэтому спасибо Вам за него. Теперь мои пять копеек и, поверьте, я только из хороших побуждений. Когда создаешь систему учета в 1С, то ВЫНУЖДЕН использовать ее механизмы, идеалогию и приемы, но зачем тащить это в другую среду, которая позволяет сделать это и не так, и лучше, и быстрее. Начнем с простого. Какова самая главная цель "Складской БД"? Обеспечить учет ТМЦ. Поступление-убыль-остаток. Остаток это отчет. Для его получение надо безошибочно (ах, если бы это было возможно) учитывать поступление и убыль. До смешного просто: - Человек, шапка пять штука возьми, да? - Человек, шапка два штука дай сейчас. Сколько там у нас на складе: 5-2=3. Вот и достигнута ОСНОВНАЯ цель "Складской БД". Как это сделать "в табличном виде" смешно даже разжевывать. Идем дальше. Теперь мы расширяем функциональность нашей "Складской БД". Хотим видеть поступление и убыль в разрезе "поставщиков - покупателей". Минимально-оптимальной показала себя схема (Люди, Организации) -> Контракты. Никаких иерархий и всякой этой фигни от 1С. Зачем иерархия в Организациях или Людях? Что ею достигается? Я понимаю, что иерархия нужна при сборках, изготовлении и т.п., но на складе этого ничего не происходит. Да и иерархия складов, как-то дико смотрится. Это типа маленький склад, находится внутри большого, или они связаны "родственными" связами. Есль склады, на них работают МОЛы, отношения могут быть и 1-1, и 1-М... Выбрать, сгруппировать труда не составляет и в живую, и автоматом (по нужным хранимым критериям). Теперь вводим операцию "Ревизия". По ее результатам может быль и "+" и "-" по каким-то ТМЦ. Появляется таблица причин отклонений. Понятное дело, что если надо видеть места (контейнеры, полки и т.п.) хранения, то это легко реализуется вводом нужных полей в таблицах. Ну вот в ОСНОВНОМ мы наладили натуральный учет ТМЦ. Имеем: 1). остатки в разрезе МОЛов, складов, мест хранения 2). анализ движения в разрезе поставщиков - покупателей 3). анализ потерь и доходов по результатам ревизий. Работу "Складской БД" в денежном выражении дописать уже не составляет труда. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2013, 20:16 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
Папа ИгорьGeo, за труд всегда надо быть благодарным, поэтому спасибо Вам за него.На здоровье ) Папа Игорь...ОСНОВНАЯ цель "Складской БД". Как это сделать "в табличном виде" смешно даже разжевывать. Идем дальше. Теперь мы расширяем функциональность нашей "Складской БД". Хотим видеть поступление и убыль в разрезе "поставщиков - покупателей". Минимально-оптимальной показала себя схема (Люди, Организации) -> Контракты.Добавляем поля Люди, Организации, Контракты и другие, "в разрезе которых" планируется делать отчеты в таблицу Doc, хоть в вариант 1, и ничего не напоминает нам об 1С :) Папа ИгорьНикаких иерархий и всякой этой фигни от 1С. Зачем иерархия в Организациях или Людях? Что ею достигается? Я понимаю, что иерархия нужна при сборках, изготовлении и т.п., но на складе этого ничего не происходит. Да и иерархия складов, как-то дико смотрится. Это типа маленький склад, находится внутри большого, или они связаны "родственными" связами. Есль склады, на них работают МОЛы, отношения могут быть и 1-1, и 1-М... Выбрать, сгруппировать труда не составляет и в живую, и автоматом (по нужным хранимым критериям).Если немного абстрагироваться от уже имеющегося опыта автоматизации, то вполне можно предположить, зачем нужна иерархия в организациях (ведь не все организации торгуют оптом двумя сортами пива, у производственников, например, сотни поставщиков - это нормальное явление), в людях (если в организации работает больше десятка сотрудников), в складах (ведь некоторые склады хотят учета по местам хранения, внутри мест хранения по ячейкам, и т.д.) Папа ИгорьНу вот в ОСНОВНОМ мы наладили натуральный учет ТМЦ. Имеем: 1). остатки в разрезе МОЛов, складов, мест хранения 2). анализ движения в разрезе поставщиков - покупателей 3). анализ потерь и доходов по результатам ревизий. Работу "Складской БД" в денежном выражении дописать уже не составляет труда.:) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2013, 20:32 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
Папа ИгорьНачнем с простого. Какова самая главная цель "Складской БД"? Обеспечить учет ТМЦ. Поступление-убыль-остаток. Остаток это отчет. Для его получение надо безошибочно (ах, если бы это было возможно) учитывать поступление и убыль. До смешного просто: - Человек, шапка пять штука возьми, да? - Человек, шапка два штука дай сейчас. Сколько там у нас на складе: 5-2=3. Вот и достигнута ОСНОВНАЯ цель "Складской БД". Как это сделать "в табличном виде" смешно даже разжевывать. дык, вы покажите КАК , а потом, вместе посмеёмся :) чёта, я, пока, не понял за что вы "агитируете" ? "вести" всё в одной табличке ("сделать "в табличном виде" ) ? или, не побоюсь этого слова, - в Экселе ? Папа ИгорьИдем дальше. Теперь мы расширяем функциональность нашей "Складской БД". Хотим видеть поступление и убыль в разрезе "поставщиков - покупателей". Минимально-оптимальной показала себя схема (Люди, Организации) -> Контракты. что есть "Контракты" ? это табличка такая ? - с какими полями ? несколько табличек ? - с какими полями "несколько табличек" ? ... и в чём "идеологическое" отличие этого вашего "контракт" от "документ" ? или совсем разных "понятий" вещии ? вообщем, - "подробностей давай !" (с) Папа ИгорьНикаких иерархий и всякой этой фигни от 1С. Зачем иерархия в Организациях или Людях? Что ею достигается? Я понимаю, что иерархия нужна при сборках, изготовлении и т.п., но на складе этого ничего не происходит. Да и иерархия складов, как-то дико смотрится. Это типа маленький склад, находится внутри большого, или они связаны "родственными" связами. Есль склады, на них работают МОЛы, отношения могут быть и 1-1, и 1-М... Выбрать, сгруппировать труда не составляет и в живую, и автоматом (по нужным хранимым критериям). ... даа, вроде бы как, никто особо на иерархию "не напирал", включая автора ... надо - вводим, не надо - не вводим ... Папа ИгорьТеперь вводим операцию "Ревизия". По ее результатам может быль и "+" и "-" по каким-то ТМЦ. Появляется таблица причин отклонений. что такое "операция "Ревизия" ? это обработка какая-то, которая время от времени запускается, или что ? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2013, 20:49 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
Geo, иерархия это всеже какая-то связь: вхождение, подчинение... Если не уходить от темы топика " Основы проектирования складской БД" никакой иерархии быть не должно. На мой взгляд, коллега, Вы вместо основ пытаетесь построить базу какого-то абстрактного предприятия с упрощениями, которые Вам кажутся не важными. Тогда уж лучше взять конкретную фирму (небольшую) и на ее примере соорудить уже базу, но не ОСНОВУ, а со всеми Doc-ами, суммами и даже проводками. Проводки, кстати это уже чистая 1С. Проводки нужны для учета/отчетности, идут от бумажного учета и сейчас не нужны для хранения в базе. На выходе (в отчетах) они появляются, а хранить их не надо, ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2013, 20:54 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
qwerty112дык, вы покажите КАК , а потом, вместе посмеёмся :) чёта, я, пока, не понял за что вы "агитируете" ? "вести" всё в одной табличке ("сделать "в табличном виде" ) ? или, не побоюсь этого слова, - в Экселе ? Показать-то, что надо? Как таблицы проектировать или их структуру? Для " Основы складской БД " надо 10-12 таблиц: 1. Поступление (2) 2. Выбытие (2) 3. Оклонения (2) 4. Причины отклонения 5. Люди 6. Склады 7. Связка Люди-Склады = МОЛы 8. Организации 9. Контракты. qwerty112что есть "Контракты" ? это табличка такая ? - с какими полями ? Храним людей, храним Организации. Люди (в нашем случае) могут выступать как МОЛы, как поставщики, как потребители. Для учета роли МОЛов служит таблица связи Люди-Склады. Для учета других ролей служит связь Люди-Контракты-(Поступление или Выбытие). Аналогично Организации - Контракты - (Поступления или Выбытие). qwerty112... и в чём "идеологическое" отличие этого вашего "контракт" от "документ" ? или совсем разных "понятий" вещии ? вообщем, - "подробностей давай !" (с) ну это я уже объяснил. qwerty112что такое "операция "Ревизия" ? это обработка какая-то, которая время от времени запускается, или что ? Назовите её "Выявление человеческого фактора и деятельности гремлинов". Запускается приказом руководителя. В некоторых странах имеет обязательных характер. :-) Для пояснения основ складской БД этих таблиц вполне хватает. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2013, 21:25 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
Папа Игорьqwerty112что есть "Контракты" ? это табличка такая ? - с какими полями ? Храним людей, храним Организации. Люди (в нашем случае) могут выступать как МОЛы, как поставщики, как потребители. Для учета роли МОЛов служит таблица связи Люди-Склады. Для учета других ролей служит связь Люди-Контракты-(Поступление или Выбытие). Аналогично Организации - Контракты - (Поступления или Выбытие). qwerty112... и в чём "идеологическое" отличие этого вашего "контракт" от "документ" ? или совсем разных "понятий" вещии ? вообщем, - "подробностей давай !" (с) ну это я уже объяснил. вы на простые вопросы можете отвечать ? я подсвечу qwerty112что есть "Контракты" ? это табличка такая ? - с какими полями ? сущность "Контракт" - описать словами сможете ? если не сможете - меня устроит список полей/подч.таблиц этой таблицы/структуры зы на 1-ую и посл.мою "квоту", отвечал, имхо инопланетянин настолько не понимать, что тебя спрашивают, человек не может ... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2013, 21:56 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
qwerty112на 1-ую и посл.мою "квоту", отвечал, имхо инопланетянин настолько не понимать, что тебя спрашивают, человек не может ... Настолько не понимать простые слова это тоже уметь надо. А на Ваш вопрос про контракты (таблица это или что другое) ответ был ясным: Люди - Контракты - (Поступление или Выбытие)... Организации - Контракты - (Поступление или Выбытие)... Из этого непонятно ЧТО есть Контракты? Тогда поясню: ЭТО ТАБЛИЦА для связи. Минимально два поля Ключ (обычный счетчик) и Объект (гуид). В поле Объект хратится ключ Людя или Организации. Для минимального анализа это надо. Другие поля (дата, вид, условия выполнение и т.п.) добавляются с расширением функциональности. Но это уже выходит за рамки ОСНОВ. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2013, 22:19 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
Папа ИгорьИз этого непонятно ЧТО есть Контракты? Тогда поясню: ЭТО ТАБЛИЦА для связи. Минимально два поля Ключ (обычный счетчик) и Объект (гуид). "кено" с вами, прям :)) что б, что-то связывать - как минимум два поля понадобится (помимо "(обычный счетчик)") а у вас - одно ... и, таки, что с чем связывает ? ЛюдУ / Организацию с "Поступление" или "Выбытие" , если я правильно понял, так ? тогда вопрос - тот же что есть "Поступление" ("Выбытие") ? это табличка такая ? - с какими полями ? Папа ИгорьНастолько не понимать простые слова это тоже уметь надо. давайте я поясню кое-что по "пониманию": - появляется некто, с такой вводной - "чо вы, мол, с этой 1с-вской "парадигмой" маетесь ? проще нужно быть ! вона у меня - гля как !" вот я и предлагаю вам, описать эту вашу "вона у меня", и хотелось, что бы это действительно оказалась НЕ 1С а на данный момент, это ваше "Контракты" - это "шапка" документа и ничего более, - чётко как 1С завещала Папа ИгорьМинимально два поля Ключ (обычный счетчик) и Объект (гуид). В поле Объект хратится ключ Людя или Организации. Для минимального анализа это надо. Другие поля (дата, вид, условия выполнение и т.п.) не сомневаюсь, что эти вот "Поступление" ("Выбытие") - окажутся "строками" документа, ...аа назвать - и горшком можно ... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2013, 23:01 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
qwerty112, как бы так помягче. :-) Контрагентами по бизнесу могут выступать как люди так и организации. Держать их в таблице контагенты с полями для разных сущностей есть неправильно. Это понятно и начинающим. В жизни если Вы что-то покупаете в конторе даже без заключения письменного договора считается, что договор был заключен. Это оговаривается в Гражданском кодексе. Таблица Контракт и служит для хранения этих договоров. Зачем? Ну подумайте на досуге. Да, Ва можете провести анализ покупок-продаж на основе таблицы контрагенты, только это ограничит Вас в дальнейшем. Да и избыточной инфы наплодите (денормализуете без всякого выигрыша). Полей в указанных таблицах вполне хватает для организации связей. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2013, 23:55 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
Папа Игорьqwerty112, как бы так помягче. :-) Контрагентами по бизнесу могут выступать как люди так и организации. Держать их в таблице контагенты с полями для разных сущностей есть неправильно. Это понятно и начинающим. про "полями для разных сущностей" - само собой, а вот начало фразы - это очень спорно но вас спрашивали - совершенно не об этом, какого вы "сваливаетесь" на какие-то частности ? считайте, что вы работаете - только с организациями ! вот вам схема (самая простая) сделанная "по 1с-вски" покажите свой аналог этой схемы НЕ "по 1с-вски" Папа ИгорьКогда создаешь систему учета в 1С, то ВЫНУЖДЕН использовать ее механизмы, идеалогию и приемы, но зачем тащить это в другую среду, которая позволяет сделать это и не так, и лучше, и быстрее. вот эту свою "петицию", проиллюстрируйте чем-нибудь, отличным от "охов / ахов и закатывания глазок" --- Папа ИгорьВ жизни если Вы что-то покупаете в конторе даже без заключения письменного договора считается, что договор был заключен. Это оговаривается в Гражданском кодексе. Таблица Контракт и служит для хранения этих договоров. Зачем? Ну подумайте на досуге. Да, Ва можете провести анализ покупок-продаж на основе таблицы контрагенты, только это ограничит Вас в дальнейшем. Да и избыточной инфы наплодите (денормализуете без всякого выигрыша). к чему была написанна вся эта херь, я не понимаю Папа ИгорьПолей в указанных таблицах вполне хватает для организации связей. только очень наивный человек может называть таб.Contract, в этой схеме - "таблицей связи" почему ? Ну подумайте на досуге. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2013, 00:30 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
qwerty112, я не буду упрощать до "работы только с организациями". Я нарисую Вам ОСНОВЫ складской БД. Сегодня уже нет. Завтра - может вечером. Об 1С сказал в разрезе слов ТС об Операциях и проводках и заточках на Документах. Даже в складской БД учитывают не документы а бизнесоперации, которые должны, а иногда и не должны (на Украине есть понятие упрощенцев) оформляться документами. И это... только очень наивный человек НЕ назовет Таблицу Contract таблицей связи. И чтобы Вы не утруждали себя на досуге расшифрую. Эта таблица позволяет СВЯЗАТЬ разные сущности (люди и организации) со сделками не нарушая нормализации и отражает "объективную реальность" данную нам законодательством. Дополнительная функциональность (когда будет необходимость) - это разные условия сделок, сроки исполнения и даже налогообложение. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2013, 01:01 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
Папа Игорьqwerty112, я не буду упрощать до "работы только с организациями". Я нарисую Вам ОСНОВЫ складской БД. ок, спасибо мне действительно интересно зы ближайшие пару-тройку дней буду ридонли, но как - только, так - сразу ... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2013, 01:12 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
Папа Игорьтолько очень наивный человек НЕ назовет Таблицу Contract таблицей связи. в университетах преподаются примерно 12 точек зрения и рассматривается примерно 45 мнений по этому вопросу. они общеизвестны. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2013, 01:15 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
2 GEO автороборотами "ты рожаешь" и "твоя личная фантазия" не разглядел знаков вопроса в тех предложениях не было вопросов, поэтому не стояло знаков. "рожаешь" и "фантазия" в том контексте - слова указатели. Рожаешь - слово, обозначающее процесс. Использовано для указания на творческий характер процесса проектирования, в результате которого появляется, рождается структура БД. Автор структуры ее родитель в переносном, но полностью аналогичном смысле. "фантазия" - слово, указывающее на необязательность конструкта, использование которого основано либо просто на личном предпочтении, либо на соображениях, выходящих за пределы минимально достаточных для получения работоспособного прототипа. Таблицы остатков первоначально происходят не столько от минимально необходимой модели предметной области, сколько от соображений обеспечения приемлего времени отклика oltp системы при увеличении объема данных. Поэтому изначально это фантазия. До тех пор пор пока ... Использовались обсуждаемые слова как метафоры, а не дисфемизмы. 2 qwerty112 удовлетворите любопытство пожалуйста: Почему Вам не стыдно отвечать на вопросы, обращенные на Вам? Потому что Вы не доверяете интеллекту топикстартера? Или Вас так прет, что Вы просто на эту тему не задумываетесь? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2013, 02:18 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
сосед акцессник, 2 qwerty112 удовлетворите любопытство пожалуйста: Почему Вам не стыдно отвечать на вопросы, обращенные на Вам? Потому что Вы не доверяете интеллекту топикстартера? Или Вас так прет, что Вы просто на эту тему не задумываетесь? грубо, имхо... лично мне все содержательные ответы - интересны, независимо от - кому вопрос, кто ответил и тд... и если не важно чей ответ мне что-то прояснил ответившему - искренний респект ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2013, 08:09 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
ZezaMлично мне все содержательные ответы - интересны, независимо от - кому вопрос, кто ответил и тд... Но видимо не все поддерживают данную точку зрения. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2013, 08:32 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
Папа Игорь, Вы не задумывались, что складская БД оторванная от системы - это ваше воображение? Если используем ее в учетной системе - целью "складской БД" может быть примитивный учет, если в wms - то к "первому плану" и основной цели подходят слегка другие вещи, как то: технологические процесса само собой не без учета ТМЦ, от которого никто никуда не денется. Папа Игорь Вот и достигнута ОСНОВНАЯ цель "Складской БД". Как это сделать "в табличном виде" смешно даже разжевывать. Как много уже говорилось в этом топике и как я только сказал, "простая складская БД" может быть в частью сложной системы WMS или просто "самобытного" образования. И в таком случае все 4 варианта становятся на свои места исходя из задач, которые решает автоматизация склада. И само собой, процитированный выше отрывок совершенно теряет смысл, так как в простейшем случае динамические остатки в самом деле разжевывать нечего, но как только неожиданно склад становится учет тмц не только в штуках, но и в весе, как только мы подключаем модуль "снабжение" для анализа динамики остатков, как только у нас появляются "остатки на дату" мы заводит и "остатки на сейчас" и так далее, усложняя и усложняя механизмы в погоне за производительностью. И именно для этих задач были написаны данные примеры, так как я видел фактически все 4 реализации "основ складской БД" на практике и наблюдал всю эволюцию, от примитивного учета ТМЦ, до самописной WMS ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2013, 09:40 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
t1002ZezaMлично мне все содержательные ответы - интересны, независимо от - кому вопрос, кто ответил и тд... Но видимо не все поддерживают данную точку зрения. Да, воспитание никогда не станет нормой, согласен. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2013, 09:42 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
Папа Игорьqwerty112, как бы так помягче. :-) Контрагентами по бизнесу могут выступать как люди так и организации. Держать их в таблице контагенты с полями для разных сущностей есть неправильно. Это понятно и начинающим. В жизни если Вы что-то покупаете в конторе даже без заключения письменного договора считается, что договор был заключен. Это оговаривается в Гражданском кодексе. Таблица Контракт и служит для хранения этих договоров. Зачем? Ну подумайте на досуге. Да, Ва можете провести анализ покупок-продаж на основе таблицы контрагенты, только это ограничит Вас в дальнейшем. Да и избыточной инфы наплодите (денормализуете без всякого выигрыша). Полей в указанных таблицах вполне хватает для организации связей. Неожиданно как-то, складской учет и продажа.... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2013, 09:45 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
сосед акцессник2 qwerty112 удовлетворите любопытство пожалуйста: Почему Вам не стыдно отвечать на вопросы, обращенные на Вам? Потому что Вы не доверяете интеллекту топикстартера? Или Вас так прет, что Вы просто на эту тему не задумываетесь? ну как жжееж, вы не заметили ? там, ведь, первая фраза ответа - сплошные "муки совести" ! эхх ! --- а серьёзно - да, я думал, что Geo - не будет отвечать на вопрос состоящий из "дурака_валяния" / "а поговорить ?" ...а ответить вам было нужно стёбный вопрос - "сёрьёзный" ответ, да ещё "по-пунктно", ... - "свежо" получилось, согласитесь :) зы впечатлил срок трансформации ваших "душевных терзаний" в "текст" :) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2013, 09:57 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
автор "свежо" получилось, согласитесь :) Нет, глупо. Вы старательно замусориваете топик, планомерно пытаясь превратить его в клоунаду. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2013, 10:41 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
сосед акцессникавтор "свежо" получилось, согласитесь :) Нет, глупо. Вы старательно замусориваете топик, планомерно пытаясь превратить его в клоунаду. qwerty112 замусоривает? Я бы так не сказал. Он пытается разрешать возникающие вопросы (и, кстати отвечает лучше, чем ответил бы я). А наш с вами разговор напоминает тролленье :) - Это всё смахивает на херню! - Сделайте нормально. - Мне некогда. Но раз тут никому не рады, я больше не вернусь! - Вот другой вариант. - А вы не лезьте, не с вами говорят. Извиняюсь за гиперболу, но определенное впечатление складывается. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2013, 11:32 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
Geo, Основа проектирования складской бд номер 0: НЕ на аксесе ! ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2013, 11:33 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
Подождать, пока выйдет 17-18-я версия Оракла? (одно время в книгах учет вели, и не жужжали) Я не говорю, что Акцесс лучший инструмент, и сам предпочитаю для подобных задач полноценный сиквел использовать, но и акцесс в определенной мере и при определенных условиях много с чем может справиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2013, 11:36 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
MasterZivGeo, Основа проектирования складской бд номер 0: НЕ на аксесе ! тут вроде и не совсем про акс, скорее про структуру бд ;) Для mysql, postgresql, mssql - не подходит?:) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2013, 11:39 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
GeoЯ не говорю, что Акцесс лучший инструмент, Проблема в том, что аксес <...> Модератор: Почикал. Есть масса топиков и тут, и в других подфорумах, где это можно обсудить. Не будем тут так бойко вбрасывать ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2013, 11:42 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
Есть и у Microsoft своя заготовка "Склад.mdb" в MSA2003. Для этого просто нажимаем Ctrl+N, затем справа щёлкаем "На моем компьютере..." (категория "Шаблоны"). После этого во вкладке "База данных" щёлкаем "Склад". P.S. Очень и очень примитивная база у MS. Интересно, сколько же нужно шлифовать эту базу, чтобы приспособить к реальным нуждам? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2013, 11:55 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
ОзверинПапа Игорь, Вы не задумывались, что складская БД оторванная от системы - это ваше воображение? Если используем ее в учетной системе - целью "складской БД" может быть примитивный учет, если в wms - то к "первому плану" и основной цели подходят слегка другие вещи, как то: технологические процесса само собой не без учета ТМЦ, от которого никто никуда не денется. Коллега, читаем внимательно название топика. Думаем. ОзверинКак много уже говорилось в этом топике и как я только сказал, "простая складская БД" может быть в частью сложной системы WMS или просто "самобытного" образования. И в таком случае все 4 варианта становятся на свои места исходя из задач, которые решает автоматизация склада. И само собой, процитированный выше отрывок совершенно теряет смысл, так как в простейшем случае динамические остатки в самом деле разжевывать нечего, но как только неожиданно склад становится учет тмц не только в штуках, но и в весе, как только мы подключаем модуль "снабжение" для анализа динамики остатков, как только у нас появляются "остатки на дату" мы заводит и "остатки на сейчас" и так далее, усложняя и усложняя механизмы в погоне за производительностью. И именно для этих задач были написаны данные примеры, так как я видел фактически все 4 реализации "основ складской БД" на практике и наблюдал всю эволюцию, от примитивного учета ТМЦ, до самописной WMS ЕЩЁ раз почитаем название топика. Мы можем долго спорить, где границы ОСНОВ ПРОЕКТИРОВАНИЯ складской БД, но я считаю, что основы должны покрыть первичное, упрощенное назначение этой БД. И как размножение является первичной задачей секса, а не удовольствие, самоутверждение и т.п., так и первичным назначением складской БД является учет ТМЦ. А находясь в рамках основ, читай начал, нам не требуются ни модули снабжения, ни динамика остатков, ни... ну в общем весь наворот ПОЛНОЦЕННОЙ системы. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2013, 14:13 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
Папа Игорь, так предложенные варианты (хоть и не полно) , но покрывают самые основные моменты автоматизации склада(читайте, архитектуру складской бд раскрывают в самом минимум требований, т.е. без адресного хранения, партионного учета, сроков хранения и прочих наворотов). Это очевидно всем, кроме вас....вроде бы ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2013, 14:34 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
t1002, p.s. имхо, чтобы спор привести во что рациональное нужно взять пример реального склада, маленького, например склад автопокрышек. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2013, 15:25 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
ОзверинПапа Игорь, так предложенные варианты (хоть и не полно) , но покрывают самые основные моменты автоматизации склада(читайте, архитектуру складской бд раскрывают в самом минимум требований, т.е. без адресного хранения, партионного учета, сроков хранения и прочих наворотов). Это очевидно всем, кроме вас....вроде бы ;) Ладно, будем считать, что мы не договорились о значениях терминов. Для себя "Основы проектирования складской БД" я вижу, как описание процесса создания этой БД в минимально простом варианте. А именно: 1. Анализ (тут можно и поговорить) 2. Проектирование (обосновать то или другое проектное решение) 3. Реализация (просто дать уже готовую схему). Вот это, по моему мнению, и есть ОСНОВЫ. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2013, 16:13 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
это складкое слово анализ. речь идет о системе или подсистеме управления складом (Warehouse management system) в частности о системе автоматизации учета ТМЦ - Товарно Материальных Ценностей на складе учет ТМЦ должен вестись в натуральном выражении на основании документов первичного учета - приходных и расходных накладных. так? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2013, 23:30 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
полином... на основании документов первичного учета - приходных и расходных накладных... А нет ли каких других документов первичного учета, на основании которых могут/должны быть движения ТМЦ по складу? зы. Я все уже позабыл. :( ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 00:00 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
nord-woolfА нет ли каких других документов первичного учета, на основании которых могут/должны быть движения ТМЦ по складу? есть и другие документы первичного учета кроме приходных и расходных накладных предлагаю дополнить список и в общем я не ставлю цели провоцировать вопросы, просто тема большая и ее в одночасье не охватишь :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 00:05 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
вот типовая схема БД "склад" построенная мастером Access: ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 01:53 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
эта схема выходит за рамки подсистемы собственно WMS, что ИМХО и порождает разные недоразумения в ней присутствуют избыточные для БД "чистый склад" таблицы "сделки" и "закупки" таблица "сделки" не лишняя, просто она должна входить в рамки другой подсистемы, м.б. "учет договоров" таблица "закупки" также не лишняя но и она должна входить в другую подсистему, м.б. "учет взаиморасчетов" ну или как-то так... пока предположим, что WMS должна учитывать только операции с ТМЦ на складе или в месте хранения ТМЦ на основе документов первичного учета. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 02:08 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
полином, В реальности самая сложная часть - товары, там могут быть не только типы, но и категории и виды, зависит от заказчика и его учёта. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 02:12 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
первое, с чего я предложил бы начать, это создание самого склада или места хранения. СкладНазвание Организация (Подразделение как вариант) Местонахождения Ответственный с полем "Ответственный" нужно будет разобраться особо в общем случае, это П ерсона, материально ответственный С отрудник О рганизации, которого нужно будет еще как-то создать в подсистеме "Отдел кадров" и наделить его материальной ответственностью предположим, что теперь у нас есть несколько пустых складов "Холодный склад" "Оперативный склад" "Хозяйственный склад" с назначенными ответственными за соблюдение режимов хранения, за сохранность ТМЦ и за исполнение операций с ТМЦ. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 02:24 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
t1002В реальности самая сложная часть даже целого слона можно съесть если отрезать от него каждый раз по небольшому кусочку ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 02:25 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
предположим, что теперь О тветственные принимают свои С клады т.е. вводим первичные остатки на складе по результатам инвентаризации при вступлении О тветственного в Д олжность или при приеме материальной ответственности. в общем-то склады могут быть пустыми :) но мы их наполним некоторыми ТМЦ Кстати, ТМЦ это совем не обязательно товары. Это могут быть всякие хозяйственные штуки или всякая рабочая одежда, или елочные игрушки с прошлого корпоратива или оргтехника О рганизации подлежащая списанию... заведем сами ТМЦ, за основу возьмем таблицу из Access чуть ее подправив ТоварыМаркаТовара ОписаниеТовара КодТипа ЦенаТовара ЕдиницыИзмерения и заведем таблицу оснований каким образом мы принимаем эти ТМЦ к учету и размещаем на складе - учтем операции с ТМЦ ОперацииКодОперации ТипОперации ДатаОперации .......... так? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 02:41 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
ОзверинShark2слова про партии, без них склад мне не очень понятен. Потому что на реальном складе обычно интересно, с какого прихода товар мы продаем. Ну и выкидывать ненужные "закрытые" партии из расчетов тоже приятно, можно быстрее посчитать остатки Все документы одинаковы, но некоторые документы одинаковее других. А именно приходные. Партиеобразующие. Если пытатся считать по партиям, то таблички получаются примерно такие Док- номер, дата, Откуда, Куда, Тип Документа ДокДет Ссылка на док,ссыдка на Партия, количество, Цена Партия- Товар, НДС, Таможенная и реестровая всякая фигня Товар- Наименование Осталось удостовериться, что заложенная в программу логику соблюдается на складе, и там берут не какую попало коробку, а именно из нужной партии. Это зависит от того, чем торгуем. Если йогуртом, то надо следить, так как срок годности- часть партии. Если гвозди- можно ссыпать их в одну кучу, спрашивать у человека сколько всего он хочет продать и подбирать партии автоматически. Партии нужны только для простоты расчета остатков и расчета себестоимости. Впрочем, в этом случае можно рассмотреть вариант с проведением аля 1с, чтобы партии формировались отдельно от документа в регистрах. Но в этом случае надо писать перепроведение и т.д., что усложняет. Проще готовую 1с УТ взять, она сделана именно так. Вообще трудно понять зачем вменяемый бизнесмен может заказать самописный склад, при том что УТ базовая 4,5 тыс руб стоит. Я поддерживаю складской учет на эксесе в немаленькой фармакологической фирме, но тут историческая причина. Люди привыкли и не хотят переучиваться, а когда они начинали 1с УТ еще не было. В 1с есть готовые заказы, взаиморасчеты, подборы, бланки, да много чего. Реализовать все это на эксесе много человеколет стоит. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 05:33 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
полином, Конечно вы глобальнее подошли, несколько складов, а не один. Конечно товар - это условная единица склада, а не товар на продажу (могут быть и поношенные перчатки, т.е. ТМЦ любые) Имена полей в операциях наверное так должны выглядеть: КодТипДата ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 05:36 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
Shark, Зачем иметь две программы: свою и склад1с, когда можно в свою склад дописать? И каких лет? Максимум два месяца со всеми хотелками, даже возникающими по ходу пьесы. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 05:38 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
А своя то зачем? На 1с тоже писать можно. Про 2 месяца, так тынц же есть пятилетней давности)) Докажите что вы герой)) тынц ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 06:42 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
Shark, Зачем мне писать на 1с, если я пишу на Акцесс и нахожусь на форуме Акцесс, а не на форуме 1С ? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 07:26 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
полиномпредположим, что теперь О тветственные принимают свои С клады т.е. вводим первичные остатки на складе по результатам инвентаризации при вступлении О тветственного в Д олжность или при приеме материальной ответственности. в общем-то склады могут быть пустыми :) но мы их наполним некоторыми ТМЦ Кстати, ТМЦ это совем не обязательно товары. Это могут быть всякие хозяйственные штуки или всякая рабочая одежда, или елочные игрушки с прошлого корпоратива или оргтехника О рганизации подлежащая списанию... заведем сами ТМЦ, за основу возьмем таблицу из Access чуть ее подправив ТоварыМаркаТовара ОписаниеТовара КодТипа ЦенаТовара ЕдиницыИзмерения и заведем таблицу оснований каким образом мы принимаем эти ТМЦ к учету и размещаем на складе - учтем операции с ТМЦ ОперацииКодОперации ТипОперации ДатаОперации .......... так? Не так ) Ответственный, должность ответственного, основание приема и т.д. нужны далеко не всем. Все эти, назовем их "тонкости", ёмко описаны в первом посте: "Для примера к таблице Doc "пристёгнуты" справочники Контрагентов и Складов, аналогично по мере необходимости к ней или другим таблицам добавляются и другие справочники, например: валют, причин списания, корреспондентских счетов и пр." (То, что написано серым, если это принципиально, можно дописать). Как только мы полезем в дебри, и начнем описывать какой-то гипотетический склад (а то и не дай бог "универсальный"), мы гарантированно (!) упустим что-то, совершенно необходимое в той или иной ситуации. Поэтому лучше и не начинать. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 10:19 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
GeoКак только мы полезем в дебри, и начнем описывать какой-то гипотетический склад (а то и не дай бог "универсальный"), мы гарантированно (!) упустим что-то, совершенно необходимое в той или иной ситуации. Поэтому лучше и не начинать. ну так и не надо начинать:) мы для тех кому "не надо" оставим пока в этом месте "заглушку" и вообще, речь не о том, что и чего не надо, а о том, что еще надо. предположим вот такую схему для затравки: ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 10:31 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
SharkВообще трудно понять зачем вменяемый бизнесмен может заказать самописный склад, при том что УТ базовая 4,5 тыс руб стоит.Зачем так сразу? Кроме невменяемости (или неопытности), могут быть и объективные причины, например уже упомянутая историческая - имеющаяся система на том же Акцессе, или зарубежные совладельцы, которые ни с какими 1С связываться не хотят, а предпочитают, чтоб их программисты имели доступ к базе в популярном формате. Да мало ли. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 10:33 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
t1002так должны выглядеть: КодТипДата я предпочитаю CamelStyle или BIG_ONES - мне так привычнее. кроме того "Типов" может быть несколько в пространстве имен, как и "Дат". Нужно указывать о ТипахЧего и о ДатахЧего идет речь в конкретном случае. вдобавок это помогает избежать использования системных имен Типа "Дата" ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 10:38 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
полином, Про много типов могу сказать одно: у меня в одной БД штук 10 полей с названием "имя", проблем нет, таблицы ведь разные. На вкус и цвет конечно друга нет. А что за системное имя "Дата"? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 10:47 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
t1002у меня в одной БД штук 10 полей с названием "имя", проблем нет, таблицы ведь разные. дело хозяйское, конечно. но я, например, постеснялся бы признаться в таком не профессиональном подходе на таком профессиональном форуме то же самое и про "Дата" с мусором на лестницу, блеять! в любом случае это отступление никак не касается обсуждаемой в топеке темы ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 10:52 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
:) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 10:56 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
nord-woolf:) полиномс мусором на лестницу, блеять! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 10:57 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
Geoи начнем описывать какой-то гипотетический склад (а то и не дай бог "универсальный") предположим, что это склад транспортно-логистической компании, которая сама не продает "Товары" а принимает на временное ответственное хранение имущество клиентов (частных и юридических лиц) насколько я понимаю, при подобной постановке задачи интерес большинства участников дискуссии к теме обсуждения резко пойдет на убыль :) однако давайте предположим, что клиентами склада могут быть контрагенты с разными организационно-правовыми статусами частные лица, ИП, ООО, различные товарищества и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 11:13 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
GeoВ этом топике я опишу несколько вариантов структуры складской БД, от самого простого до довольно "продвинутых" видов, и постараюсь в нескольких словах указать их плюсы и минусы. Geo, отличная статья! Если бы на пол-года пораньше.Мне пришлось склад написать, хотя это не моя предметная область. Среди всей информации, которую я тогда пересмотрел, такой понятной и полной не было. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 12:31 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
полиномпредположим, что это склад транспортно-логистической компании, которая сама не продает "Товары"Для начала надо ответить на вопрос "Зачем?". Для того, чтобы продемонстрировать структуру бд, картинок вполне достаточно. Для того, чтобы показать высокий класс программирования, надо либо реализовывать все приведенные варианты (опять же, в каких рамках?) и мотивировать то или иное решение, введение тех или иных справочников, признаков, категорий и т.п. - непочатый край для бессмысленных и ненужных споров, либо непонятно зачем писать свой "Борей". Я могу предположить, что нужен не повредит сравнительный анализ быстродействия этих вариантов, без обертывания его в какой-либо интерфейс (с полями подстановок назло злопыхателям, ага :)), но тоже совсем в этом не уверен - его все-таки имеет смысл проводить в более-менее конкретных условиях. На выбранном железе, эмулируя нужное число пользователей и др. Но приводить пример "рабочей" базы, которая не будет удовлетворять ничьим (включая ее автора) требованиям, я считаю, бессмысленно. P.S. Вот про партионный учет дописать, оно как бы просится. Но тут надо прорабатывать вопрос. Я знаю всего два принципиально различных варианта реализации, и не уверен, что нет других сколько-нибудь распространенных. Хорошо бы по этому поводу товарища ЛП порасспрашивать - у него и опыта больше, и голова работает не в пример моей :) P.P.S. t1002nord-woolf:) полиномс мусором на лестницу, блеять!Alvk негодуэ :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 15:02 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
Было бы интересно прочитать, что-нибудь лучше чем ничего на мой взгляд. Тем более "А" вы уже сказали)) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 16:55 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
полином... насколько я понимаю, при подобной постановке задачи интерес большинства участников дискуссии к теме обсуждения резко пойдет на убыль :) ... <Задумчиво> А ежели нечаянно зацепиться за описание топологии склада, реализации алгоритмов размещения ... могет быть совсем даже наоборот. </Задумчиво> ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 17:55 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
полиномоднако давайте предположим, что клиентами склада могут быть контрагенты с разными организационно-правовыми статусами частные лица, ИП, ООО, различные товарищества и т.п. А если б он вез макароны ? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 17:56 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
GeoДля начала надо ответить на вопрос "Зачем?". -конечно, это была провокация. Для того, чтобы продемонстрировать структуру бд, картинок вполне достаточно. -м-м-м... хорошо. а то я был начал переживать Для того, чтобы показать высокий класс программирования, надо либо реализовывать все приведенные варианты (опять же, в каких рамках?) -речь не идет о программировании.это просто общие рассуждения и наброски мотивировать то или иное решение, введение тех или иных справочников, признаков, категорий и т.п. - непочатый край для бессмысленных и ненужных споров, либо непонятно зачем писать свой "Борей". -конечно, это во многом провокация Я могу предположить, что нужен не повредит сравнительный анализ быстродействия этих вариантов, без обертывания его в какой-либо интерфейс (с полями подстановок назло злопыхателям, ага :)), но тоже совсем в этом не уверен - его все-таки имеет смысл проводить в более-менее конкретных условиях. На выбранном железе, эмулируя нужное число пользователей и др. -эта задача потребует изрядных сил для реализации, но ничего и никому не докажет. хотя конечно подобные вопросы (вопросы тестирования и проверки результатов) возникают естественными образом Но приводить пример "рабочей" базы, которая не будет удовлетворять ничьим (включая ее автора) требованиям, я считаю, бессмысленно. -я понял P.S. Вот про партионный учет дописать, оно как бы просится. Но тут надо прорабатывать вопрос. Я знаю всего два принципиально различных варианта реализации, и не уверен, что нет других сколько-нибудь распространенных. Хорошо бы по этому поводу товарища ЛП порасспрашивать - у него и опыта больше, и голова работает не в пример моей :) -ну чтож... будем ждать ЛП ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 22:51 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
nord-woolf<Задумчиво></Задумчиво> ну это уже пройденный этап :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 22:54 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
полиномnord-woolf<Задумчиво></Задумчиво> ну это уже пройденный этап :) Так я примерно догадываюсь, потому и, как бы задумчиво, так мягко намекаю. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 23:10 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
nord-woolfкак бы задумчиво, так мягко намекаю. :) тут я не могу предложить универсального решения. точнее универсальное решение тут это "человеческий фактор" ИМХО нужно найти и обучить персонал таким образом, чтобы те задачи, которые решают роботизированные комплексы на огромных складах, на небольших (относительно) складах решали конкретные люди. если речь идет об адресации мест хранения, для начала поможет банка с краской и кисть. парадигма сводится к редуцированию большого количества вводных к двум ипостасям: Единица Хранения Место Хранения все остальное производные и обычные подробности ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 23:20 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
nord-woolfА ежели нечаянно зацепиться за описание топологии склада, реализации алгоритмов размещения ...</Задумчиво> не в этом форуме, вероятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2013, 00:17 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
полином... это "человеческий фактор" ИМХО... Ох как вы правы. Безо всякого ИМХО. зы. Как я устал сегодня на работе "воевать" с дураками. Пойду отсыпаться. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2013, 00:17 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
>>не в этом форуме, вероятно. Да я так, чисто теории "послушать". Была задачка "на упаковку". Пришлось хардкодить жестко. Бяка получилась. Надеюсь уже выкинули. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2013, 00:23 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
nord-woolfБяка получилась. Надеюсь уже выкинули. :) был опыт по "упаковке" вагонов. прилада задавала схему и последовательность размещения груза в вагоне с максимальной эффективностью заполнения получилось, но не пригодилось. упаковка "ручками" выходит и быстрее и почти безошибочно (ее) хотя может быть и не так плотно как программно ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2013, 00:40 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
полиномэта схема выходит за рамки подсистемы собственно WMS, что ИМХО и порождает разные недоразумения в ней присутствуют избыточные для БД "чистый склад" таблицы "сделки" и "закупки" таблица "сделки" не лишняя, просто она должна входить в рамки другой подсистемы, м.б. "учет договоров" таблица "закупки" также не лишняя но и она должна входить в другую подсистему, м.б. "учет взаиморасчетов" ну или как-то так... пока предположим, что WMS должна учитывать только операции с ТМЦ на складе или в месте хранения ТМЦ на основе документов первичного учета. полином, я не знаю кто такое WMS, что туда входит или оттуда выходит. Просто хочу обратить твое внимание на то, что показанная тобой здесь http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=998443&msg=13818953 картинка, как схема составленная access, полностью идентична "Схеме 1" из первого сообщения Geo Вот соответствие по названиям таблиц. Закупки - Docs Сделки - DocTable Товары - dNomenkl Сотрудники - dStorages Поставщики - idContra Учет прихода и ухода происходит по таблице Сделки Остаток, с учетом продаж и утруски, выводится построчно, по каждой из поступивших в таблицу Сделки "партий товара". Таким образом, в акцессный склад встроен некий прообраз "партионного учета", без порождения специальных приходных, расходных и утрусочных документов. Вероятно, предполагается учет чего-то вроде ТМЦ. Поэтому, глядя на схему, понятие "места хранения" можно считать полностью эквивалентным понятию "материально ответственное лицо", которое в данной схеме совпадает с содержимым таблицы Сотрудники. Мест хранения в акцессной схеме могло бы быть ровно столько, сколько сотрудников зарегистрировано. "Могло бы быть" здесь написано в связи с тем, что реализованный в шаблоне интерфейс не предполагает показа информации в разрезе сотрудников, оставляя такую переработку интерфейса на пользователя акцесс. Состав наличных полей акцессного шаблона достаточен для реализации распределенных по пользовательским ролям функций. - До фактического поступления товар числится "в заказе" - эту операцию может делать пользователь1, оформляющий заказ. - по поступлению товара пользователь2 (ответственное лицо) должно сквитовать количество фактически поступившего товара, Отдельно (пользователем3 или пользователем2) может оформляется выбытие("продажа"/списание-утруска) по поступившей партии с оформлением усушки. Т.е акцессный шаблон пригоден для реализации достаточно богатого спектра операций, для того, чтобы считать, что это работоспособный прототип склада. Сформулированный непосредственно в бизнес-терминах. Видно, что при желании передача ценностей между отвтственными лицами в рамках акценссного шаблона тоже возможна. Это можно сделать так: - предварительно список поставщиков дополняется сотрудниками, для которых допускатеся передача ценностей между собой Далее само движение проводится тремя действиями - 1)в таблице сделок оформляется "продажа", 2)затем оформляется "заказ" на передачу, где поставщиком является передающий сотрудник, а материально ответственным лицом - сотрудник, принимающий ценности. 3) принимающий ценности сотрудник квитует прием ценностей. Желающим оставлена возможность навести на этот процесс автоматизацию. Сжема допускает. Кроме того, такая акцессная схема по разнице между заказанными и полученными количествами теоретически позволяет оперировать виртуальными понятиями "товар в пути" и "потери при транспортировке". Где-то в топике проскочило что она примитивная - может быть - но глядя на нее сразу понятно, зачем все это и какой набор бизнес-процессов на этом можно реализовать и ... и... и...и без документов в названиях обошлись. некая подстава интерфейсе шаблона все-таки есть. проектировщик интерфейса явно предполагал, что склад единственный (поняте места хранения в его сознании не выделялось) и "сотрудник" в результате просто висит в воздухе этого интерфейса никому не нужный. Разработчик интерфейса явно не знал, зачем нужен "сотрудник". ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2013, 01:55 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
автор"места хранения" можно считать полностью эквивалентным понятию "материально ответственное лицо", которое в данной схеме совпадает с содержимым таблицы Сотрудники. Представил склад, где рядами стоят сотрудники(по 100 человек в ряд) и держат товары. Укомплектовка заказа происходит примерно следующим образом, после формирования документов для комплектующих (с какого места хранения сколько единиц взять товара), комплектовщик ходит между рядами людей, спрашивает: "Сколько у тебя на остатках?" и если не хватает(а между тем документ показывает, что должно хватать) судит на месте. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2013, 10:05 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
Вариант 6. Модификация разных вариантов плюс "адресное хранение". Подразумевается, что операции проводим в контексте одного склада. Префиксы : r - ref(справочник), d - document(документ), c - cross(кросс-данные) " r_cell " - примитивный справочник ячеек на текущем складе " r_goods " - примитивный справочник товаров(я чаще вижу иерархические справочники, вида id, groupId) " r_agent " - примитивный справочник контрагентов(среди которых могут быть как клиенты, так и собственный(е) склад(ы) " r_order_type " - примитивный справочник типов заказов(расход, приход, перемещение) " d_order " -> " d_order_table " - таблица заказов(план): *typeId: - отгрузка клиента(расходный документ) - перемещение(из ячейки в ячейку: расход+приход) - приход товара(приходный документ) *srcId - код источника(при расходном заказе - это наш склад; при приходном - это поставщик, при перемещении - наш склад) *dstId - код получателя(при расходном заказе - это клиент; при приходном - наш склад; при перемещении - наш склад) " d_operation " -> " d_operation_table " - таблица операций(факт): * orderId: - операций на складе без "заказа" не бывает * qty - кол-во * любая операция пополняет и\или расходует товар из ячейки (см. текущие остатки - "c_cell_goods") " c_cell_goods " - таблица текущего расположения товаров с кол-вом по ячейкам(можно назвать текущими остатками) В сухом остатке процесс: 1. Формируем заказы(фактически - это план отгрузки: заявки от клиентов, приход от поставщика) 2. Если сформирован план - формируем операции по плану(исходя из текущих остатков в общем случае операция говорит о том, к какой ячейке подойти , сколько там единиц взять и, если требуется, в какую ячейку переложить) 3. Каждая операция пополняет и\или расходует текущие остатки 4. Так как схема довольно примитивная - на этом все ;) 5. В дальнейшем схема усложняется: отношением ячейки к товару, другими словами, ячейки могут содержать только определенные "SKU", партионным учетом и так далее. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2013, 11:37 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
ОзверинПредставил склад, где рядами стоят сотрудники... Спасибо, ваше представление ценно тем, что наглядно демонстрирует простой факт: Когда несколько людей разглядывает одну и ту же фигу, оказывается, что каждый из них при этом читает свою собственную книгу. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2013, 11:38 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
Папа Игорь 23 янв 13, 01:01qwerty112, я не буду упрощать до "работы только с организациями". Я нарисую Вам ОСНОВЫ складской БД. Сегодня уже нет. Завтра - может вечером. ... ии гдее ?? Папа Игорь , таки, да ! давайте рассмотрим ваш вариант ... ! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2013, 00:16 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
такой этот топик давно был нужон а каждую сессию его ваще нужно поднимать наверх .... некогда ... наткнулся сюда, когда 'писAл' очередной СКЛАД....)) тож хотелось чего-то УНИВЕРСАЛЬНОГО как понял набив шишек: объять - необъятное хотел .... пользую схему : Приход-Расход - одна Таблица - все остальное - вокруг неё... склады-то простенькие - пекарня, колбасный цех....))) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2013, 01:11 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
сосед акцессниккартинка, как схема составленная access, полностью идентична "Схеме 1" из первого сообщения Geo вообще-то схеме_1 из первого сообщения Гео скорее соответствует схема приведенная мной после переработки схемы построенной мастером Access. и его выводы в отношении подобонй схемы и ее "аскетичности" в целом верны :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2013, 02:07 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
геоОперации (проводки) + текущие остатки Текушие остатки можно не городить в отдельную таблицу, вполне себе прилично и добротно в таблицу проводок поля добавить, по ситуации: ostatok_in, ostatok_out или ostatok_Debit, ostatok_Credit, они тут становятся историчными и на дату выводятся. Текущий остаток можно дублировать в таблицу "Товары/Материалы", если позволяет учет номенклатуры(уникальность по складам). Преймущества - остатки сохраненные плюсуются с расчитанными из проводок, все из одного места и прочие ... Функция остаток на дату, если дата не задана, лезет в таблицу "Товары/Материалы", оттуда текущий остаток. Если дата есть, селектит таблицу проводок -> по ситуации, или селектит расход - приход, либо селектит в этой же таблице сохраненные, или селектит сохраненные с прибавлением вычисляемых. 10 складов по стране, более 40 мелких баз. Все в одном Oracle, висящем в европе. Не тормозит :) (Велосипед не мой. Забугоная erp, в россии успешно распространенная, так устроена) А тема не для форума Access, а "Проектирование БД", не честно огораживаться и боятся детские решения показывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2013, 22:03 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
артистТекушие остатки можно не городить в отдельную таблицу, вполне себе прилично и добротно в таблицу проводок поля добавить, по ситуации: ostatok_in, ostatok_out или ostatok_Debit, ostatok_Credit, они тут становятся историчными и на дату выводятся.Можно и так, конечно. Но это чревато огромным, а то и невыполнимым объемом работы при изменении документов задним числом. Upd: Далее Артист, в числе прочего, сказал, что существует пример работающей базы, где документы задним числом изменяются. Вероятно, я не правильно понял, что он имеет в виду, описывая свою структуру. Upd: Хотя, конечно, вряд ли. Учитывая упомянутое 30минутное "закрытие дня". артистТекущий остаток можно дублировать в таблицу "Товары/Материалы", если позволяет учет номенклатуры(уникальность по складам).Если я правильно понял, то это только при условии единственного склада и отсутствии перспективы изменения этого условия. артистПреймущества - остатки сохраненные плюсуются с расчитанными из проводок, все из одного места и прочие ...Преимущества те же, что в варианте 4. Потому что единственная разница между ним и описанном вами вариантом, это отсутствие складов и объединение таблицы текущих остатков и справочника "товаров/материалов". артист10 складов по стране, более 40 мелких баз. Все в одном Oracle, висящем в европе. Не тормозит :) (Велосипед не мой. Забугоная erp, в россии успешно распространенная, так устроена)Королева в восхищении (с) И что? артистА тема не для форума Access, а "Проектирование БД", не честно огораживаться и боятся детские решения показывать.:-) Детский сад. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2013, 22:16 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
Следующее сообщение я удалил, поскольку оно совсем бессодержательное было. С уважением. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2013, 22:53 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
Уважаемые софорумцы, извините что пишу здесь, но так как специфика вопроса полностью в теме топика и отвечали здесь люди, явно владеющие не только теоретическими знаниями, все таки спрошу: Сколько стоит создание основных таблиц, триггеров и хранимых процедур на SQL Server 2005 (с дальнейшей допиской интерфейса и остальной оснастки мной на MS Access 2003), для оптово розничной фирмы (ширпотреб, косметика, средства гигиены и т.д.). Что должно быть (в общих чертах): 1. Учет по партиям товара 2. Этапы приходных документов: - предварительный заказ - счет проформа (то что подтвердили поставщики для заказа) - накладная на приход (то что реально принял склад) 3. Этапы документов расхода: - предварительный заказ (то что хочет покупатель) - сборочные листы (то что отправлено на склад на сборку) - счет фактура/накладная (то что реально собрано и отправлено клиенту) 4. Пост обработка документов: - коррекция прихода (+/-, пересорт) - коррекция расхода (+/-, пересорт), причем в идеале как минус так и плюс могут возникнуть через 3-12 месяцев после продажи Еще раз извиняюсь перед админами что пишу здесь, просто в работу имеет смысл писать зная хотя бы порядок цен на это, а в этом топике, повторюсь, писали ребята, которые очень похожее уже создавали. 5. Каждую ночь перерасчет таблицы ежедневных остатков по позициям (остаток на утро/приход/продажа/возврат/остаток на ночь) 6. В месяц идет около 15 000 продаж (документов), порядка 100 000 строк, около 20 поставщиков ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2013, 21:19 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
Думаю, что такое разделение труда маловероятно. Сильная сторона связки а2003 адп + мс скл сервер в возможности одновременной разработки и сервера и клиента, когда каждая из частей растет с учетом потребностей своего оппонента. По вашему же сценарию вы должны выкатить бо-о-о-ольшой документ, в котором подробно напишете весь функционал будущей системы, по которому раздельно можно будет разработать серверную часть. Сама по себе работа по составлению такого локумента уже стоит немало. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2013, 22:21 |
|
Основы проектирования складской БД (v. 2)
|
|||
---|---|---|---|
#18+
OLEG_ZH... Сколько стоит ...это Вопрос Ваш в контексте форума неприличный, но, невзирая на на это обстоятельство, вот Вам ответ. Это ничего не стоит. Если Вы производите работы самостоятельно, не требуя для выполнения работ специального бюджета, то и цены такой работе нет. При персональном заказе это стоит ровно столько, сколько заявил исполнитель. Например, если производителем работ дан ответ, что работа займет 18 человеко-месяцев, то цена окажется от 600 тыс до чуть более 6 млн. руб в зависимости от оценки человека-месяца. Если Вы обратитесь в "магазин дешевого софта", то стоить это будет от 150руб до 4500 руб, а если в магазин софта для наладонников, то рублей 29 или 30. Произнесите понравившееся число. Убедитесь в том, что оно красиво с Вашей точки зрения. Вот эту сумму и называйте. Т.к. речь идет о числах вообще - то любое из них правильное. Здесь нельзя ни ошибиться, ни прогадать. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2013, 23:13 |
|
|
start [/forum/topic.php?all=1&fid=45&tid=1619496]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
150ms |
get tp. blocked users: |
2ms |
others: | 267ms |
total: | 505ms |
0 / 0 |