powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Основы проектирования складской БД (v. 2)
138 сообщений из 138, показаны все 6 страниц
Основы проектирования складской БД (v. 2)
    #38116871
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В этом топике я опишу несколько вариантов структуры складской БД, от самого простого до довольно "продвинутых" видов, и постараюсь в нескольких словах указать их плюсы и минусы. Возможно, со временем кто-то возьмется окультурить изложенную ниже информацию и довести ее до вида, пригодного к опубликованию в 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 для решения этой проблемы вводится механизм "последовательности документов", который предназначен, в сущности, для того, чтобы в нужный момент сказать пользователю: "раз вы не потратили время на перепроведение, то мы умываем руки и не обещаем правильных оборотов". Другим вариантом решения этой проблемы может послужить полный запрет редактирования документов "закрытого периода". Чтобы отредактировать документ из закрытого периода, надо будет вводить либо механизм открытия периода, либо практику сторнирующих документов.
- программа уже становится не наколенной поделкой, а довольно непростым в написании продуктом.

Примечание
Дальнейшее развитие базы возможно приведет вас к необходимости партионного учета. То есть товар из очередного поступления надо отличать от остальных поступлений того же товара. Например и как минимум по сроку годности. Этот вариант я (пока или совсем) описывать здесь не буду.

Кроме того, я не затрагиваю массу вопросов, которые возникнут, если вам потребуется обеспечивать одновременную работу нескольких пользователей: журналирование изменений, репликацию удаленных баз и др. Это отдельная, очень большая и непростая тема.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38116877
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Geo,

картинок, почему-то, нет ...
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38116878
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwerty112Geo,

картинок, почему-то, нет ...


гм. Сейчас поправлю... Джудж место экономит и картинки в удаленных постах не хранит. Придется выложить их ниже
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38116879
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38116880
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38116928
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38116930
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38117250
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Geo,

Сразу же хочется Вас попросить привести алгоритм контроля отрицательных остатков товара
в Ваших структурах. Сможете?
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38117255
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Geo,

авторЭтот вариант гораздо удобнее делать, используя sql сервер, с помощью триггеров на таблицу проводок. При каждом изменении таблицы проводок автоматически пересчитываются остатки товаров.

Остатки можно хранить на "последний момент" и/или на определенные периоды, например, на 1-е число каждого месяца.


Можно ли вообще не хранить остатки, а рассчитывать их на лету для товара в расходной накладной?
Как при этом сделать контроль отрицательных остатков в MS Access?

На мой взгляд невозможно вообще сделать контроль отриц. остатков товаров в MS Access.
Я пытался. У меня не получилось.

Потому-что в Аксессе нет транзакции на чтение.
Пока я читаю данные из таблицы остатков,
кто-то теоретически их может изменить в этой таблице, в момент чтения.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38117278
2Geo

Можешь простыми простыми словами сказать - какие семь красных линий ты хочешь изобразить перпендикулярно?
О чем этот топик, для кого и зачем?


Чтобы начать с чего-нибудь простого - есть хоть какие-нибудь осмысленно озвучиваемые соображения, по которым в складской базе "документы" оказались центральным логическим понятием?
Если "документов" достаточно - логика какого сорта заставляет довешивать к ним "операции"?
Там что-то с докаументами не так или это "денормализация"?

Вот я ничего не знаю про складской учет. (Действительно не знаю не знаю - не занимался этим).
По прочтении топика - какую главную умность, как человек не занимавшийся никогда складским учетом, я должен усвоить?
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38117279
пардон за дефекты речи в виде заиканий.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38117301
t1002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Складской учёт, а товаров нет. Как это понимать? Учёт документов?
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38117302
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
t1002Складской учёт, а товаров нет. Как это понимать? Учёт документов?
таб. dNomenkl
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38117303
t1002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwerty112,

Разве в номенклатуре не может быть несколько товаров? А следовательно учёта товаров тут нет, есть учёт документов.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38117304
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Geo Вариант 1.
....
Вариант 2.
...
исключительно, "для полноты коллекции", можно ещё упомянуть "промежуточный" между в.1 и в.2 вариант организации структуры "Документ",
когда есть одна табл.Docs с общими для всех видов документов реквизитами, и с ней связанны 1:(1,0) 3-и таб.с "уникальными" для этого документа реквизитами,
хотя и советовать делать так (по этому, промежуточному варианту) в Акцессе , имхо, стоит в самую посл.очередь

---
...и так, если из "вредности" только, ещё :
поле Summ, в DocTable - и в вариантах без "Регистра" (Operations) - "не одобряю" :) ,
а в вариантах с "Регистром" - точно лишнее ...

имхо, конечно
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38117305
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
t1002qwerty112,

Разве в номенклатуре не может быть несколько товаров? А следовательно учёта товаров тут нет, есть учёт документов.
да нее, это ты не про ту номенклатуру говоришь,
в смысле - есть понятие "Номенклатура изделия" - то из чего это изделие состоит,

а тут другая "Номенклатура" - ассортимент, что ли :)
вообщем, 1С-ники, например, "сплош и рядом", называют то, что "честный акцессник" назовёт "СправочникТоваров" - справочник "Номенклатура"
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38117306
t1002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwerty112,

Так я не 1с-ник, поэтому не понимаю, как справочник товаров превратился в номенклатуру. Вообще действительно всё смахивает на логику 1с.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38117307
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сосед акцессник,

моё имхо, если не возражаете :)

сосед акцессникО чем этот топик, для кого
поиск по "склад" даёт 9-ть страниц тем
сосед акцессники зачем?
как "стартовый пинок" в нужном направлении
сосед акцессникЧтобы начать с чего-нибудь простого - есть хоть какие-нибудь осмысленно озвучиваемые соображения, по которым в складской базе "документы" оказались центральным логическим понятием?

схема описывает "движение по складам"
инициируется и фиксируется это "движение" - документами, ... вроде бы всё логично ...
сосед акцессникЕсли "документов" достаточно - логика какого сорта заставляет довешивать к ним "операции"?
Там что-то с докаументами не так или это "денормализация"?
денормализация (это "регистр" 1С-вский)

простота и скорость формирования запросов(не в смысле query, а в смысле вопрос-ответ) на остатки
Остатки (Rests) - из тех же соображений (1С-вские "Промеж.итоги" или как_там_их ...)
сосед акцессникПо прочтении топика - какую главную умность, как человек не занимавшийся никогда складским учетом, я должен усвоить?
когда понадобится занятся складским учетом,
и нужно будет делать схему данных этого "занятия",
нужно НЕ изобретать "велик" (не поедет :) ), а пройти в этот топик и выбрать на "свой вкус", и "допиливать" уже её под конкретные требования, конкретного/своего БП
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38117309
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
t1002qwerty112,

Так я не 1с-ник, поэтому не понимаю, как справочник товаров превратился в номенклатуру. Вообще действительно всё смахивает на логику 1с.
это - да, это - есть

только, вот могу сказать, что сколько не видел вариантов этого "Склада",
все "рабочие" - с такой логикой (с такой же сутью - документы, регистры, ... - пусть как угодно по другому названными, но с таким смыслом)
с другой - тоже есть, но почему-то "включаеш - не работает" :)
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38117311
t1002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwerty112с другой - тоже есть, но почему-то "включаеш - не работает" :)

У меня работает. Не знаю насколько она другая, но я там отталкиваюсь от товара и его прихода на склад. Правда склад - только часть техпроцесса.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38117312
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
t1002qwerty112с другой - тоже есть, но почему-то "включаеш - не работает" :)

У меня работает. Не знаю насколько она другая, но я там отталкиваюсь от товара и его прихода на склад. Правда склад - только часть техпроцесса.
нуу, давай - показуй схему, посмотрим :)
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38117321
t1002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwerty112,

Это я делать не буду, не даст она ничего, отдельно склад оттуда я не вырежу, он встроен в техпроцесс, да и имена полей описывать тоже долго и хлопотно. Плюс свои нюансы, но никаких документов там нет.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38117412
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+1

Respect автору топика за тему:)
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38117437
SangYong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на каждый локейшн своя таб-ца ?
как-то меня сомнения разбирают....

карту товара я не увидел...
у каждой карты могет быть вариант
редакции - у меня например для описания одной
сучности может из года в год меняться код - редакция
описательной части карты просто необхоима
поскольку один код становится актуальным
другой архивным...

почему не держать актуальные остатки
в виде отдельного справочника... ? скрость
и удобство визуализации увеличивается в разы

сложновато как-то засхемить всю дурь
в которой приходится ползать.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38117490
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вариант 1 - не нахожу причины для подобной структуры бд. Метаданные отлично хранятся в отдельной таблице.

Остальные варианты надо рассматривать не с точки зрения эстетической красоты, а с точки зрения запросов пользователя, как правильно описал Geo, каждый вариант характеризуется длительностью(малой или большой) аналитики по динамике оборота, остатков и тд(допустим, изменения остатков за 3 года в динамической базе - достаточно печальный отчет, который вынудит программистов раз в период так или иначе агрегировать данные за период)
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38117511
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Nebo
Сразу же хочется Вас попросить привести алгоритм контроля отрицательных остатков товара
в Ваших структурах. Сможете?
Нет, не смогу. Этот топик имел целью лишь привести структуры бд их применимость, а писать на каждый вариант рабочую базу, да еще и учитывающую поднимаемые вами ниже вопросы, это работа не на одну неделю. В целом же про остатки я упоминаю в каждом варианте.

Можно ли вообще не хранить остатки, а рассчитывать их на лету для товара в расходной накладной?
Как при этом сделать контроль отрицательных остатков в MS Access?
Всё писал в первом посте.

На мой взгляд невозможно вообще сделать контроль отриц. остатков товаров в MS Access.
Я пытался. У меня не получилось.

Потому-что в Аксессе нет транзакции на чтение. Пока я читаю данные из таблицы остатков, кто-то теоретически их может изменить в этой таблице, в момент чтения.
Товароучетные системы писали и до MS Access, вообще без каких бы то ни было транзакций. И с отрицательными остатками, уверен, боролись.

Сосед-акцессник
Можешь простыми простыми словами сказать - какие семь красных линий ты хочешь изобразить перпендикулярно?
О чем этот топик, для кого и зачем?
На этот вопрос уже ответил Qwerty123, спасибо ему большое :)

Чтобы начать с чего-нибудь простого - есть хоть какие-нибудь осмысленно озвучиваемые соображения, по которым в складской базе "документы" оказались центральным логическим понятием?
Если "документов" достаточно - логика какого сорта заставляет довешивать к ним "операции"?
Там что-то с докаументами не так или это "денормализация"?
Таблица документов расположена "в центре" по двум причинам. Во-первых, мне так было удобнее рисовать. Во-вторых, очень часто при первом создании складской бд, люди приходят к схемам, похожим на 1ю или 2ю. Почему добавлена таблица "операций", я указал в разделе "Вариант 3". Если вам нравится этот термин, то да - это классический образец денормализации.

Вот я ничего не знаю про складской учет. (Действительно не знаю не знаю - не занимался этим).
По прочтении топика - какую главную умность, как человек не занимавшийся никогда складским учетом, я должен усвоить?
Как человек, никогда не занимавшийся - никакую. Если когда-нибудь придется заниматься, то этот топик, возможно, задаст направление для размышлений, сподвигнет провести необходимые тесты производительности и т.д. Авось пригодится, стало быть.

t1002

Так я не 1с-ник, поэтому не понимаю, как справочник товаров превратился в номенклатуру. Вообще действительно всё смахивает на логику 1с.
Как обычно, отдельная благодарность Alvk за его неоценимый вклад в обсуждение вопросов форума. Видите ли, дорогая редакция. От изменения синонима в названии работа таблицы меняется не очень сильно. Я специально консультировался. А термин "Товары" мне кажется менее подходящим, чем "Номенклатура". Потому что "уборку мусора", "резку металла" и прочие работы и услуги, даже за уши не притянешь к "товарам".

P.S. Вариант 4, я, вероятно, на досуге разделю на 2 подварианта. Когда хранятся только "текущие остатки" - "Отдельный справочник", как пишет "SangYong", и когда в процессе работы создаются промежуточные остатки. Всё-таки отличий между ними довольно много.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38117533
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
упустил

2 qwerty123
[i]...и так, если из "вредности" только, ещё :
поле Summ, в DocTable - и в вариантах без "Регистра" (Operations) - "не одобряю" :) ,
а в вариантах с "Регистром" - точно лишнее ...
[/i]
В документах Сумма необходима категорически. Тоже пресловутая денормализация, но потенциальной головной боли с различными контрагентами и инстанциями из-за объяснений "почему расходится на копейку" гораздо больше. Я у себя рассчитываю сумму, если вводилась цена, и рассчитываю цену, если вводилась сумма. А храню обязательно всё. Никакие округления не должны менять однажды введенный первичный документ.

В "регистрах" же наоборот - нужна сумма, но бессмысленна цена. Цену оттуда считать не придется никогда, эти таблицы нужны только для формирования остатков/оборотов, а суммовые остатки нужны часто.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38117632
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Geo
авторНа этот вопрос уже ответил Qwerty123, спасибо ему большое :)
я-то, по наивности, расчитывал услышать начальника транспортного цеха.

авторПочему добавлена таблица "операций", я указал в разделе "Вариант 3".
в разделе "вариант3" есть слова про "проводки", в картинке - "операции". как понять - это про одно и тоже или нет?
Хотел услышать примерно вот о чем - если проводки "надо" - почему схемы без проводок-операций признаются за допустимые
в том смысле, что технически правильные. Если без "проводок" можно, значит их наличие - размножение сущностей.
Если, наоборот, их "надо", то факт их существования сам по себе представляет какю-то существенную часть моделируемых бизнес-процессов.

авторЕсли вам нравится этот термин, то да - это классический образец денормализации.
Нет, не нравится термин. До тех пор, пока не ясна уместность его применения.

Ладно. извини за вторжение.
Не буду я читать этот топик.
Даже когда мне станет "надо".

Вот почему - в тот момент, когда мне станет "надо", - у меня будет более или менее определенный контекст - в виде набора пользователеей, их ролей и целей по отношению к программе.
А также более или мне внятное представление о наборе бизнез-процессов, составляющих область будущей задачи.
Вряд ли мне захочется читать в тот момент про сферических коней в вакууме.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38117646
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boobyв разделе "вариант3" есть слова про "проводки", в картинке - "операции". как понять - это про одно и тоже или нет?Да, это одно и то же. Поправлю.
boobyХотел услышать примерно вот о чем - если проводки "надо" - почему схемы без проводок-операций признаются за допустимые в том смысле, что технически правильные. Если без "проводок" можно, значит их наличие - размножение сущностей.
Если, наоборот, их "надо", то факт их существования сам по себе представляет какю-то существенную часть моделируемых бизнес-процессов."Надо их", или не надо - решать исключительно автору программы. Причины и следствия введения таблицы операций-проводок я указал.

boobyЛадно. извини за вторжение.
Не буду я читать этот топик.
Даже когда мне станет "надо".

Вот почему - в тот момент, когда мне станет "надо", - у меня будет более или менее определенный контекст - в виде набора пользователеей, их ролей и целей по отношению к программе.
А также более или мне внятное представление о наборе бизнез-процессов, составляющих область будущей задачи.
Вряд ли мне захочется читать в тот момент про сферических коней в вакууме.Ну и дай бог тебе жену хорошую.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38117918
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На мой взгляд контроль отрицательных остатков - это самое слабое место.
И это очень важный момент, особенно при сетевой работе.

Настоящий 100% контроль на лету в Аксессе сделать, по моему, невозможно.
Потому-что запрос на чтение и запрос на изменение в рамках одной транзакции невозможны в Аксессе.
А тогда и нет смысла писать склад на Аксессе.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38117953
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NeboНа мой взгляд контроль отрицательных остатков - это самое слабое место.
И это очень важный момент, особенно при сетевой работе.

Настоящий 100% контроль на лету в Аксессе сделать, по моему, невозможно.
Потому-что запрос на чтение и запрос на изменение в рамках одной транзакции невозможны в Аксессе.
А тогда и нет смысла писать склад на Аксессе.

Само собой, все написанные на аксе складские программы - лишь выдумка больного воображения разработчиков и пользователей ;)))
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38118021
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинNeboНа мой взгляд контроль отрицательных остатков - это самое слабое место.
И это очень важный момент, особенно при сетевой работе.

Настоящий 100% контроль на лету в Аксессе сделать, по моему, невозможно.
Потому-что запрос на чтение и запрос на изменение в рамках одной транзакции невозможны в Аксессе.
А тогда и нет смысла писать склад на Аксессе.

Само собой, все написанные на аксе складские программы - лишь выдумка больного воображения разработчиков и пользователей ;)))

:)
Ну я же Вам по существу пишу про транзакцию.
А Вы проверьте сперва.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38118029
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NeboОзверинпропущено...


Само собой, все написанные на аксе складские программы - лишь выдумка больного воображения разработчиков и пользователей ;)))

:)
Ну я же Вам по существу пишу про транзакцию.
А Вы проверьте сперва.

Сценарий не понял. Учитывая, что vba - однопоточный, то выполнение изменение и чтение - последовательные операции. В таком случае для транзакции чтение тех данных, которые были изменены в текущей транзакций - стандартный сценарий.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38118253
t1002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GeoТак я не 1с-ник, поэтому не понимаю, как справочник товаров превратился в номенклатуру. Вообще действительно всё смахивает на логику 1с.
От изменения синонима в названии работа таблицы меняется не очень сильно. Я специально консультировался. А термин "Товары" мне кажется менее подходящим, чем "Номенклатура". Потому что "уборку мусора", "резку металла" и прочие работы и услуги, даже за уши не притянешь к "товарам".

Мне уже qwerty112 растолковал, что у вас понятие Номенклатура обозначает Товары. Можно было уже не писать.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38118264
t1002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NeboА тогда и нет смысла писать склад на Аксессе.

А народ и не знает, пойду скажу, пусть на Эксель обратно переходят
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38118295
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Версия 1 (для архива)В этом топике я опишу несколько вариантов структуры складской БД, от самого простого до довольно "продвинутых" видов, и постараюсь в нескольких словах указать их плюсы и минусы. Возможно, со временем кто-то возьмется окультурить изложенную ниже информацию и довести ее до вида, пригодного к опубликованию в FAQ.

Несколько оговорок:
- русскоязычные названия полей, используемые в схемах, приведены исключительно для наглядности. Я рекомендую пользоваться во-первых, одним языком при описании структуры таблиц, во-вторых, языком английским. Рекомендую я это с точки зрения удобства написания программ. При использовании англоязычных названий вам придется реже переключать раскладку клавиатуры, и дело будет идти быстрее. Впрочем, никаких других причин не пользоваться русскими названиями, включая религиозные, я не знаю.
- справочники Складов, Контрагентов и прочие я описываю в линейном виде, хотя сам предпочитаю делать их иерархическими, по аналогии с приведенной структурой справочника Номенклатуры. Поскольку организация иерархии - это отдельная и объемная тема, то останавливаться на ней здесь я не буду.

Вариант 1.

Самый аскетичный вариант. Подразумевается, что все документы хранятся в общей таблице Doc, а их табличные части в одной для всех таблице DocTable. Для примера к таблице Doc "пристёгнуты" справочники Контрагентов и Складов, аналогично по мере необходимости добавляются и другие справочники, например: валют, причин списания, корреспондентских счетов и пр.

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

Плюсы:
- простая и компактная схема БД.
Минусы:
- много избыточной информации. Многие документы имеют исключительно свои поля, которые не используются в других документах. И чем дальше развивается программа, тем больше будет таких полей.
- при использовании выделенного sql сервера для обработки и хранения данных, придется писать громоздкие и неудобные в восприятии триггеры на таблицы Doc и DocTable.
- весьма неудобные запросы для получения остатков и оборотов.
- по мере роста базы очень большое время получения остатков и оборотов.

Вариант 2.

Те же, и по одной таблице на каждый документ. Теперь одной форме (или нескольким почти идентичным формам) документа у нас соответствует одна таблица в базе. Это значительно упрощает поддержку и развитие программы, изменяя один документ, мы перестаем получать паровоз изменений, которые могут потребоваться во всех остальных формах, обслуживающих прочие документы.

Плюсы:
- простая схема БД.
Минусы:
- неудобные запросы для получения остатков и оборотов.
- по мере роста базы очень большое время получения остатков и оборотов.

Примечание
Оба эти варианта очень просты, но отличаются сложностью обработки информации и получения отчетов. Поэтому имеет смысл делать одну или несколько служебных таблиц, которые заполняются по мере редактирования таблиц документов. При работе с полноценным sql-сервером их заполнение разумно делать триггерами, при использовании же "чистого" Access, они заполняются в процедурах обслуживания событий форм: при удалении, редактировании и создании записей. В последнем случае так же нельзя будет забывать обо всех других способах изменения таблиц, например, при импорте данных, загрузках из ТСД и прочее. Во всех этих случаях надо будет изменять и служебные таблицы.

Вариант 3.
Добавляем таблицу проводок. "Развивать" я буду вариант 2, но не вижу препятствий и для соответствующих изменений варианта 1.



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

Плюсы:
- очень простые и удобные запросы для получения остатков и оборотов товаров.
Минусы:
- При достижении определенных (и не очень больших, кстати) объемов товарооборота, все эти запросы начнут здорово тормозить. И особенно в случаях, когда данные будут располагаться на другом компьютере в сети, либо потребуется получать остатки при вводе документов, производительности этого варианта окажется недостаточно, и вам придется развивать программу дальше.

Вариант 4.
Проводки+остатки.



Этот вариант гораздо удобнее делать, используя sql сервер, с помощью триггеров на таблицу проводок. При каждом изменении таблицы проводок автоматически пересчитываются остатки товаров.

Остатки можно хранить на "последний момент" и/или на определенные периоды, например, на 1-е число каждого месяца.

Плюсы:
- стабильное и небольшое время получения остатков и оборотов.
Минусы:
- запросы на получение оборотов должны будут считать входящие (а возможно и исходящие) остатки от даты ближайшего предыдущего периода рассчитанных остатков, что здорово их усложняет.
- изменение документов "задним числом" обязательно должно инициировать пересчет всех необходимых остатков. Что также требует довольно непростых обработок, и, кроме того, приводит к подчас очень приличному времени перерасчетов. Настолько приличному, что, например, в 1С 7.7 для решения этой проблемы вводится механизм "последовательности документов", который предназначен, в сущности, для того, чтобы в нужный момент сказать пользователю: "раз вы не потратили время на перепроведение, то мы умываем руки и не обещаем правильных оборотов".
- программа уже становится не наколенной поделкой, а довольно непростым в написании продуктом.

Примечание
Дальнейшее развитие базы возможно приведет вас к необходимости партионного учета. То есть товар из очередного поступления надо отличать от остальных поступлений того же товара. Например и как минимум по сроку годности. Этот вариант я (пока или совсем) описывать здесь не буду.

Кроме того, я не затрагиваю массу вопросов, которые возникнут, если вам потребуется обеспечивать одновременную работу нескольких пользователей: журналирование изменений, репликацию удаленных баз и др. Это отдельная, очень большая и непростая тема.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38118362
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38118468
?????
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NeboНастоящий 100% контроль на лету в Аксессе сделать, по моему, невозможно.
Потому-что запрос на чтение и запрос на изменение в рамках одной транзакции невозможны в Аксессе.
А тогда и нет смысла писать склад на Аксессе

Ну, на акцессе лучше клиент, а база на сервере. Но даже если на акцессе:
(мы говорим о складе)

1. Реально подбор расхода в документ - длительный процесс, товар можно выбрать, удалить, изменить количество - и все это еще не сохранив расход - и все это с нескольких рабочих мест. Значит надо завести буферную/временную таблицу (БТ) куда писать ИД товара, кол-во и ИД юзера.
2. При выборе товара показывать его остатки с учетом БТ
3. При сохранении документа - блокировать БТ, а потом удалять отработавшего Юзера из БТ.
4. Другие спокойно ждут, пока БТ блокирована.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38118514
?????
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
3а. + При сохранении - проверять чтоб остатки не ушли в минус.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38118654
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2слова про партии, без них склад мне не очень понятен. Потому что на реальном складе обычно интересно, с какого прихода товар мы продаем. Ну и выкидывать ненужные "закрытые" партии из расчетов тоже приятно, можно быстрее посчитать остатки

Все документы одинаковы, но некоторые документы одинаковее других. А именно приходные. Партиеобразующие. Если пытатся считать по партиям, то таблички получаются примерно такие

Док- номер, дата, Откуда, Куда, Тип Документа
ДокДет Ссылка на док,ссыдка на Партия, количество, Цена
Партия- Товар, НДС, Таможенная и реестровая всякая фигня
Товар- Наименование
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38118855
полином
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
кто-то готов внятно объяснить почему "остаток на складе" не может "уйти в минус"
назовите хотя бы одну объективную причину, почему этого нельзя допускать.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38118866
Фотография nord-woolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы: У нас "отрицательный остаток" - перманентное состояние.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38118867
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что то я не увидел особо продвинутого вида связей по складу. Основной упор идет на дополнительные таблицы для хранения истории по документам. Могу помочь с блоком , который описывает все что происходит до склада. Начиная с зарубежного поставщика и нарезке коркодов с комплектами и коробами + транспорт+таможня+все остальное что составляет сущность товародвижения и начисления себестоимости от фабрики до вашей точки отсчета.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38118868
полиномкто-то готов внятно объяснить почему "остаток на складе" не может "уйти в минус"
назовите хотя бы одну объективную причину, почему этого нельзя допускать.

полином - это не вопрос "правильного" или "неправильного" программирования. Фигура сия складывается из двух пальцев - первый указует на определение того, что есть "остаток" , второй на на "бизинес-правило" пользователя сего определения.
С точки зрения кладовщика он не может опустить более того, что есть в наличии - его бизнес-правило > 0?
а у отдела приема заказов ноль может быть скорректирован на объем двухнедельных контрактных поступлений.
тип остатка может быть там где-то запрятан - то ли по строкам, то ли по столбцам.

Для вакуумного случая - совершенно не важно - есть там тп остатка, или нет.

И вопрос не в том, может ли остаток быть меньше нуля, а в том, как поступить, в случае, когда заявлено требование к многопользователькой системе, что остаток некого типа меньше нуля не должен быть.
Было сформулировано профессиональное мнение, что поступить никак нельзя.

Видимо, скоро кто-нибудь сообщит, что и котенка линией нарисовать нельзя.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38118878
полином
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nord-woolfзы: У нас "отрицательный остаток" - перманентное состояние.
и это совершенно нормально :) ИМХО
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38118884
?????
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и это совершенно нормально
Да, выпишем два расхода фирме А и Б, а кладовщик сам решит, кому не положить, того, чего нет. Ну и себестоимость/торговое наложение непонятно как считать...
А так да, у всех они есть, только не все признаются.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38118886
Фотография nord-woolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
?????и это совершенно нормально
Да, выпишем два расхода фирме А и Б, а кладовщик сам решит, кому не положить, того, чего нет. ...
И обе фирмы (и третья, и четвертая, и ...) получат (реально, так сказать, в натуре) то, что им выписано.
Такая вот, понимаешь, арифметика ... :)
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38118889
полином
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сосед акцессникзаявлено требование к многопользователькой системе, что остаток некого типа меньше нуля не должен быть.

ну и что тогда? систему переделывать или сокращать сроки поставки от поставщика или сроки производства продукции?
или увеличивать сроки отгрузки заказа покупателю, в случае если требуемого изделия пока нет или оно еще не сделано?

если не ошибаюсь, в NorthWind'e это называется ReorderingLevel. это такое количество, при котором следует заказать новую поставку.

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

если "остаток на складе" это разница между "поступившим [de facto] товаром" и "выданным [de facto] товаром", то она может быть меньше нуля если только товар производится на складе из воздуха.

а если "остаток на складе" это разница между "поступившим [de facto] товаром" и "поставляемым товаром" так может стоит "что-то в бухгалтерии подправить"...
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38118895
автор"что-то в бухгалтерии подправить"...

во-во, пральное решение.
а то ходють, панимаешь к праграммистам, голову дурят и дурят.
сказано нельзя - вот идите отсюда направо и бюстгалтерию правьте.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38118901
авторесли только товар производится на складе из воздуха.

эта почти правильно.

"из воздуха" - это по волшебству, методом материализации чувственных идей.

Вот именно этим программист и занимается - создает материализаторы чувственных идей в виде программных изделий.
Так что не из воздуха, а по воле программиста.
И обычно, не в части прихода, а в части расхода.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38118999
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shark2слова про партии, без них склад мне не очень понятен. Потому что на реальном складе обычно интересно, с какого прихода товар мы продаем. Ну и выкидывать ненужные "закрытые" партии из расчетов тоже приятно, можно быстрее посчитать остатки

Все документы одинаковы, но некоторые документы одинаковее других. А именно приходные. Партиеобразующие. Если пытатся считать по партиям, то таблички получаются примерно такие

Док- номер, дата, Откуда, Куда, Тип Документа
ДокДет Ссылка на док,ссыдка на Партия, количество, Цена
Партия- Товар, НДС, Таможенная и реестровая всякая фигня
Товар- Наименование

Осталось удостовериться, что заложенная в программу логику соблюдается на складе, и там берут не какую попало коробку, а именно из нужной партии.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38119977
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Geo

кстати:

авторP.S. Вариант 4, я, вероятно, на досуге разделю на 2 подварианта. Когда хранятся только "текущие остатки" - "Отдельный справочник", как пишет "SangYong", и когда в процессе работы создаются промежуточные остатки. Всё-таки отличий между ними довольно много.

Отличий между ними настолько существенны, что требуют этого - выноса текущих остатков в отдельный справочник - не делать вне точно определенного контекста.
Пальцев на асфальте три.

1) "текущие остатки" - нечто, завязанное на понятие "сейчас".
Для кладовщика на конкретном складе - "сейчас" - вменяемо определяемое понятие - гляди на часы и оглядывайся по сторонам на полки. То что видишь, то и есть сейчас.
Для "продавцов", "плановиков", "бухгалтеров" ничего близко похожего на поняте "сейчас" нет. Все что угодно - вроде учетного периода, дня, квартала - есть, а "сейчас" - нет.

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

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

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

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





Как-то так.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38120080
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booby,

"сейчас" = /select Max(date) from совокупность проведенных документов/
Сурово ;)
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38120177
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booby"текущие остатки" - нечто, завязанное на понятие "сейчас".
Для кладовщика на конкретном складе - "сейчас" - вменяемо определяемое понятие - гляди на часы и оглядывайся по сторонам на
Для "продавцов", "плановиков", "бухгалтеров" ничего близко похожего на поняте "сейчас" нет. Все что угодно - вроде учетного периода, дня, квартала - есть, а "сейчас" - нет.Я не против.

booby<...> развития модели задачи <...> Пойнт здесь такой <...> содержательную часть модели, обремененную алгоритмической поддержкой заявленного бизнес-требования. <...> специальный ресурс под который <...> нет вменяемых бизнес-требованийи т.д., и т.п. Уважаемый Booby. Есть ли у вас силы и время превратить описанные мною, цитирую: "несколько вариантов структуры складской БД" в законченную и вменяемую (читай, понятную и годную для публикации в FAQ) статью, необремененную россыпью красивых и длинных слов, или со словами, вынесенными в четкие и понятные определения? Если да, я с удовольствием помогу в оформлении и редактировании. Если нет, освободите меня, пожалуйста, от гипотетических споров ради споров.

авторпонятие "таблица остатков", отличных от "сейчас" становится, с высокой вероятностью, излишеством, желательным к удалению с целью упрощения поддерживаюх процедур.Да ради бога. Набросайте годную и простую структуру складской бд, и приведите ее в качестве альтернативы. Уверен, ее с интересом обсудят, возможно укажут и на её плюсы и минусы. Или только на плюсы.

Как-то так, ага. )
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38120195
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗЫ.

авторP.S. Вариант 4, я, вероятно, на досуге разделю на 2 подварианта. Когда хранятся только "текущие остатки" - "Отдельный справочник", как пишет "SangYong", и когда в процессе работы создаются промежуточные остатки. Всё-таки отличий между ними довольно много. Разнес уже, кстати. Вчера еще. И еще пару штрихов cделал, по мотивам увиденных замечаний
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38120234
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Geo
Не понимаю я в складах ничего, и не знаю о них даже приблизительно.
Поэтому схему "набросать" не могу.

Ладно, раз мне нельзя задавать вопросы на понимание и высказывать соображения, то и Вам не болеть.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38120257
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boobyЛадно, раз мне нельзя задавать вопросы
Ах вот оно что... Я просто за оборотами "ты рожаешь" и "твоя личная фантазия" не разглядел знаков вопроса.
Тогда, раз
boobyмоя гипотеза состоит в том, что понятие "таблица остатков", отличных от "сейчас" становится, с высокой вероятностью, излишеством, желательным к удалению с целью упрощения поддерживаюх процедур, то докладываю: описание этой гипотезы более-менее подходит под обновленный "вариант 4" стартового поста. И в нем же написано, для чего вводится следующий вариант. Собственно, протестировать, на каком количестве записей на железе выбранной могучести вариант 4 начнет тормозить, очень легко. Дальше "пальцы складываются" на калькуляторе, и решается, надо ли ускорять расчеты в конкретном выбранном случае в ущерб простоте реализации, или не надо. Я по мере сил пытался это донести.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38120391
Фотография Папа Игорь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Geo, за труд всегда надо быть благодарным, поэтому спасибо Вам за него.

Теперь мои пять копеек и, поверьте, я только из хороших побуждений.

Когда создаешь систему учета в 1С, то ВЫНУЖДЕН использовать ее механизмы, идеалогию и приемы, но зачем тащить это в другую среду, которая позволяет сделать это и не так, и лучше, и быстрее.

Начнем с простого. Какова самая главная цель "Складской БД"? Обеспечить учет ТМЦ. Поступление-убыль-остаток. Остаток это отчет. Для его получение надо безошибочно (ах, если бы это было возможно) учитывать поступление и убыль. До смешного просто:

- Человек, шапка пять штука возьми, да?
- Человек, шапка два штука дай сейчас.

Сколько там у нас на складе: 5-2=3.

Вот и достигнута ОСНОВНАЯ цель "Складской БД". Как это сделать "в табличном виде" смешно даже разжевывать.

Идем дальше. Теперь мы расширяем функциональность нашей "Складской БД". Хотим видеть поступление и убыль в разрезе "поставщиков - покупателей". Минимально-оптимальной показала себя схема (Люди, Организации) -> Контракты.
Никаких иерархий и всякой этой фигни от 1С. Зачем иерархия в Организациях или Людях? Что ею достигается?
Я понимаю, что иерархия нужна при сборках, изготовлении и т.п., но на складе этого ничего не происходит.
Да и иерархия складов, как-то дико смотрится. Это типа маленький склад, находится внутри большого, или они связаны "родственными" связами. Есль склады, на них работают МОЛы, отношения могут быть и 1-1, и 1-М... Выбрать, сгруппировать труда не составляет и в живую, и автоматом (по нужным хранимым критериям).

Теперь вводим операцию "Ревизия". По ее результатам может быль и "+" и "-" по каким-то ТМЦ. Появляется таблица причин отклонений.

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

Ну вот в ОСНОВНОМ мы наладили натуральный учет ТМЦ.
Имеем:
1). остатки в разрезе МОЛов, складов, мест хранения
2). анализ движения в разрезе поставщиков - покупателей
3). анализ потерь и доходов по результатам ревизий.

Работу "Складской БД" в денежном выражении дописать уже не составляет труда.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38120408
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Папа ИгорьGeo, за труд всегда надо быть благодарным, поэтому спасибо Вам за него.На здоровье )

Папа Игорь...ОСНОВНАЯ цель "Складской БД". Как это сделать "в табличном виде" смешно даже разжевывать.

Идем дальше. Теперь мы расширяем функциональность нашей "Складской БД". Хотим видеть поступление и убыль в разрезе "поставщиков - покупателей". Минимально-оптимальной показала себя схема (Люди, Организации) -> Контракты.Добавляем поля Люди, Организации, Контракты и другие, "в разрезе которых" планируется делать отчеты в таблицу Doc, хоть в вариант 1, и ничего не напоминает нам об 1С :)

Папа ИгорьНикаких иерархий и всякой этой фигни от 1С. Зачем иерархия в Организациях или Людях? Что ею достигается?
Я понимаю, что иерархия нужна при сборках, изготовлении и т.п., но на складе этого ничего не происходит.
Да и иерархия складов, как-то дико смотрится. Это типа маленький склад, находится внутри большого, или они связаны "родственными" связами. Есль склады, на них работают МОЛы, отношения могут быть и 1-1, и 1-М... Выбрать, сгруппировать труда не составляет и в живую, и автоматом (по нужным хранимым критериям).Если немного абстрагироваться от уже имеющегося опыта автоматизации, то вполне можно предположить, зачем нужна иерархия в организациях (ведь не все организации торгуют оптом двумя сортами пива, у производственников, например, сотни поставщиков - это нормальное явление), в людях (если в организации работает больше десятка сотрудников), в складах (ведь некоторые склады хотят учета по местам хранения, внутри мест хранения по ячейкам, и т.д.)

Папа ИгорьНу вот в ОСНОВНОМ мы наладили натуральный учет ТМЦ.
Имеем:
1). остатки в разрезе МОЛов, складов, мест хранения
2). анализ движения в разрезе поставщиков - покупателей
3). анализ потерь и доходов по результатам ревизий.

Работу "Складской БД" в денежном выражении дописать уже не составляет труда.:)
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38120433
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Папа ИгорьНачнем с простого. Какова самая главная цель "Складской БД"? Обеспечить учет ТМЦ. Поступление-убыль-остаток. Остаток это отчет. Для его получение надо безошибочно (ах, если бы это было возможно) учитывать поступление и убыль. До смешного просто:

- Человек, шапка пять штука возьми, да?
- Человек, шапка два штука дай сейчас.

Сколько там у нас на складе: 5-2=3.

Вот и достигнута ОСНОВНАЯ цель "Складской БД". Как это сделать "в табличном виде" смешно даже разжевывать.

дык, вы покажите КАК , а потом, вместе посмеёмся :)
чёта, я, пока, не понял за что вы "агитируете" ? "вести" всё в одной табличке ("сделать "в табличном виде" ) ? или, не побоюсь этого слова, - в Экселе ?

Папа ИгорьИдем дальше. Теперь мы расширяем функциональность нашей "Складской БД". Хотим видеть поступление и убыль в разрезе "поставщиков - покупателей". Минимально-оптимальной показала себя схема (Люди, Организации) -> Контракты.

что есть "Контракты" ?
это табличка такая ? - с какими полями ?
несколько табличек ? - с какими полями "несколько табличек" ?

... и в чём "идеологическое" отличие этого вашего "контракт" от "документ" ? или совсем разных "понятий" вещии ?
вообщем, - "подробностей давай !" (с)

Папа ИгорьНикаких иерархий и всякой этой фигни от 1С. Зачем иерархия в Организациях или Людях? Что ею достигается?
Я понимаю, что иерархия нужна при сборках, изготовлении и т.п., но на складе этого ничего не происходит.
Да и иерархия складов, как-то дико смотрится. Это типа маленький склад, находится внутри большого, или они связаны "родственными" связами. Есль склады, на них работают МОЛы, отношения могут быть и 1-1, и 1-М... Выбрать, сгруппировать труда не составляет и в живую, и автоматом (по нужным хранимым критериям).

... даа, вроде бы как, никто особо на иерархию "не напирал", включая автора ...
надо - вводим, не надо - не вводим ...

Папа ИгорьТеперь вводим операцию "Ревизия". По ее результатам может быль и "+" и "-" по каким-то ТМЦ. Появляется таблица причин отклонений.

что такое "операция "Ревизия" ?
это обработка какая-то, которая время от времени запускается, или что ?
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38120436
Фотография Папа Игорь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Geo, иерархия это всеже какая-то связь: вхождение, подчинение...

Если не уходить от темы топика " Основы проектирования складской БД" никакой иерархии быть не должно.

На мой взгляд, коллега, Вы вместо основ пытаетесь построить базу какого-то абстрактного предприятия с упрощениями, которые Вам кажутся не важными.

Тогда уж лучше взять конкретную фирму (небольшую) и на ее примере соорудить уже базу, но не ОСНОВУ, а со всеми Doc-ами, суммами и даже проводками. Проводки, кстати это уже чистая 1С. Проводки нужны для учета/отчетности, идут от бумажного учета и сейчас не нужны для хранения в базе. На выходе (в отчетах) они появляются, а хранить их не надо,
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38120459
Фотография Папа Игорь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwerty112дык, вы покажите КАК , а потом, вместе посмеёмся :)
чёта, я, пока, не понял за что вы "агитируете" ? "вести" всё в одной табличке ("сделать "в табличном виде" ) ? или, не побоюсь этого слова, - в Экселе ?
Показать-то, что надо? Как таблицы проектировать или их структуру? Для " Основы складской БД " надо 10-12 таблиц:
1. Поступление (2)
2. Выбытие (2)
3. Оклонения (2)
4. Причины отклонения
5. Люди
6. Склады
7. Связка Люди-Склады = МОЛы
8. Организации
9. Контракты.

qwerty112что есть "Контракты" ?
это табличка такая ? - с какими полями ?
Храним людей, храним Организации. Люди (в нашем случае) могут выступать как МОЛы, как поставщики, как потребители. Для учета роли МОЛов служит таблица связи Люди-Склады. Для учета других ролей служит связь Люди-Контракты-(Поступление или Выбытие). Аналогично Организации - Контракты - (Поступления или Выбытие).

qwerty112... и в чём "идеологическое" отличие этого вашего "контракт" от "документ" ? или совсем разных "понятий" вещии ?
вообщем, - "подробностей давай !" (с)
ну это я уже объяснил.

qwerty112что такое "операция "Ревизия" ?
это обработка какая-то, которая время от времени запускается, или что ?
Назовите её "Выявление человеческого фактора и деятельности гремлинов".
Запускается приказом руководителя. В некоторых странах имеет обязательных характер. :-)

Для пояснения основ складской БД этих таблиц вполне хватает.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38120489
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Папа Игорьqwerty112что есть "Контракты" ?
это табличка такая ? - с какими полями ?
Храним людей, храним Организации. Люди (в нашем случае) могут выступать как МОЛы, как поставщики, как потребители. Для учета роли МОЛов служит таблица связи Люди-Склады. Для учета других ролей служит связь Люди-Контракты-(Поступление или Выбытие). Аналогично Организации - Контракты - (Поступления или Выбытие).

qwerty112... и в чём "идеологическое" отличие этого вашего "контракт" от "документ" ? или совсем разных "понятий" вещии ?
вообщем, - "подробностей давай !" (с)
ну это я уже объяснил.
вы на простые вопросы можете отвечать ?
я подсвечу
qwerty112что есть "Контракты" ?
это табличка такая ? - с какими полями ?
сущность "Контракт" - описать словами сможете ?
если не сможете - меня устроит список полей/подч.таблиц этой таблицы/структуры

зы
на 1-ую и посл.мою "квоту", отвечал, имхо инопланетянин
настолько не понимать, что тебя спрашивают, человек не может ...
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38120515
Фотография Папа Игорь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwerty112на 1-ую и посл.мою "квоту", отвечал, имхо инопланетянин
настолько не понимать, что тебя спрашивают, человек не может ...

Настолько не понимать простые слова это тоже уметь надо. А на Ваш вопрос про контракты (таблица это или что другое) ответ был ясным:

Люди - Контракты - (Поступление или Выбытие)...
Организации - Контракты - (Поступление или Выбытие)...

Из этого непонятно ЧТО есть Контракты?

Тогда поясню: ЭТО ТАБЛИЦА для связи. Минимально два поля Ключ (обычный счетчик) и Объект (гуид). В поле Объект хратится ключ Людя или Организации. Для минимального анализа это надо. Другие поля (дата, вид, условия выполнение и т.п.) добавляются с расширением функциональности. Но это уже выходит за рамки ОСНОВ.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38120540
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Папа ИгорьИз этого непонятно ЧТО есть Контракты?

Тогда поясню: ЭТО ТАБЛИЦА для связи. Минимально два поля Ключ (обычный счетчик) и Объект (гуид).
"кено" с вами, прям :))
что б, что-то связывать - как минимум два поля понадобится (помимо "(обычный счетчик)")
а у вас - одно ...

и, таки, что с чем связывает ?
ЛюдУ / Организацию с "Поступление" или "Выбытие" , если я правильно понял, так ?

тогда вопрос - тот же

что есть "Поступление" ("Выбытие") ?
это табличка такая ? - с какими полями ?
Папа ИгорьНастолько не понимать простые слова это тоже уметь надо.
давайте я поясню кое-что по "пониманию":
- появляется некто, с такой вводной - "чо вы, мол, с этой 1с-вской "парадигмой" маетесь ? проще нужно быть ! вона у меня - гля как !"

вот я и предлагаю вам, описать эту вашу "вона у меня",
и хотелось, что бы это действительно оказалась НЕ 1С

а на данный момент, это ваше "Контракты" - это "шапка" документа и ничего более, - чётко как 1С завещала
Папа ИгорьМинимально два поля Ключ (обычный счетчик) и Объект (гуид). В поле Объект хратится ключ Людя или Организации. Для минимального анализа это надо. Другие поля (дата, вид, условия выполнение и т.п.)

не сомневаюсь, что эти вот "Поступление" ("Выбытие") - окажутся "строками" документа,
...аа назвать - и горшком можно ...
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38120568
Фотография Папа Игорь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwerty112, как бы так помягче. :-)

Контрагентами по бизнесу могут выступать как люди так и организации. Держать их в таблице контагенты с полями для разных сущностей есть неправильно. Это понятно и начинающим.

В жизни если Вы что-то покупаете в конторе даже без заключения письменного договора считается, что договор был заключен. Это оговаривается в Гражданском кодексе. Таблица Контракт и служит для хранения этих договоров. Зачем? Ну подумайте на досуге.
Да, Ва можете провести анализ покупок-продаж на основе таблицы контрагенты, только это ограничит Вас в дальнейшем. Да и избыточной инфы наплодите (денормализуете без всякого выигрыша).

Полей в указанных таблицах вполне хватает для организации связей.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38120599
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Папа Игорьqwerty112, как бы так помягче. :-)

Контрагентами по бизнесу могут выступать как люди так и организации. Держать их в таблице контагенты с полями для разных сущностей есть неправильно. Это понятно и начинающим.

про "полями для разных сущностей" - само собой,
а вот начало фразы - это очень спорно

но вас спрашивали - совершенно не об этом,
какого вы "сваливаетесь" на какие-то частности ?

считайте, что вы работаете - только с организациями !
вот вам схема (самая простая)


сделанная "по 1с-вски"
покажите свой аналог этой схемы НЕ "по 1с-вски"

Папа ИгорьКогда создаешь систему учета в 1С, то ВЫНУЖДЕН использовать ее механизмы, идеалогию и приемы, но зачем тащить это в другую среду, которая позволяет сделать это и не так, и лучше, и быстрее.
вот эту свою "петицию", проиллюстрируйте чем-нибудь, отличным от "охов / ахов и закатывания глазок"

---

Папа ИгорьВ жизни если Вы что-то покупаете в конторе даже без заключения письменного договора считается, что договор был заключен. Это оговаривается в Гражданском кодексе. Таблица Контракт и служит для хранения этих договоров. Зачем? Ну подумайте на досуге.
Да, Ва можете провести анализ покупок-продаж на основе таблицы контрагенты, только это ограничит Вас в дальнейшем. Да и избыточной инфы наплодите (денормализуете без всякого выигрыша).
к чему была написанна вся эта херь, я не понимаю

Папа ИгорьПолей в указанных таблицах вполне хватает для организации связей.

только очень наивный человек может называть таб.Contract, в этой схеме - "таблицей связи"
почему ? Ну подумайте на досуге.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38120615
Фотография Папа Игорь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwerty112, я не буду упрощать до "работы только с организациями". Я нарисую Вам ОСНОВЫ складской БД. Сегодня уже нет. Завтра - может вечером.
Об 1С сказал в разрезе слов ТС об Операциях и проводках и заточках на Документах.
Даже в складской БД учитывают не документы а бизнесоперации, которые должны, а иногда и не должны (на Украине есть понятие упрощенцев) оформляться документами.

И это... только очень наивный человек НЕ назовет Таблицу Contract таблицей связи. И чтобы Вы не утруждали себя на досуге расшифрую.

Эта таблица позволяет СВЯЗАТЬ разные сущности (люди и организации) со сделками не нарушая нормализации и отражает "объективную реальность" данную нам законодательством. Дополнительная функциональность (когда будет необходимость) - это разные условия сделок, сроки исполнения и даже налогообложение.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38120619
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Папа Игорьqwerty112, я не буду упрощать до "работы только с организациями". Я нарисую Вам ОСНОВЫ складской БД.
ок, спасибо
мне действительно интересно

зы
ближайшие пару-тройку дней буду ридонли, но как - только, так - сразу ... :)
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38120620
полином
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Папа Игорьтолько очень наивный человек НЕ назовет Таблицу Contract таблицей связи.
в университетах преподаются примерно 12 точек зрения и рассматривается примерно 45 мнений по этому вопросу.
они общеизвестны.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38120641
2 GEO
автороборотами "ты рожаешь" и "твоя личная фантазия" не разглядел знаков вопроса
в тех предложениях не было вопросов, поэтому не стояло знаков.

"рожаешь" и "фантазия" в том контексте - слова указатели.
Рожаешь - слово, обозначающее процесс. Использовано для указания на творческий характер процесса проектирования, в результате которого появляется, рождается структура БД. Автор структуры ее родитель в переносном, но полностью аналогичном смысле.

"фантазия" - слово, указывающее на необязательность конструкта, использование которого основано либо просто на личном предпочтении, либо на соображениях, выходящих за пределы минимально достаточных для получения работоспособного прототипа. Таблицы остатков первоначально происходят не столько от минимально необходимой модели предметной области, сколько от соображений обеспечения приемлего времени отклика oltp системы при увеличении объема данных. Поэтому изначально это фантазия.
До тех пор пор пока ...

Использовались обсуждаемые слова как метафоры, а не дисфемизмы.


2 qwerty112
удовлетворите любопытство пожалуйста:
Почему Вам не стыдно отвечать на вопросы, обращенные на Вам?
Потому что Вы не доверяете интеллекту топикстартера?
Или Вас так прет, что Вы просто на эту тему не задумываетесь?
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38120697
ZezaM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сосед акцессник,


2 qwerty112
удовлетворите любопытство пожалуйста:
Почему Вам не стыдно отвечать на вопросы, обращенные на Вам?
Потому что Вы не доверяете интеллекту топикстартера?
Или Вас так прет, что Вы просто на эту тему не задумываетесь?

грубо, имхо...

лично мне все содержательные ответы - интересны,
независимо от - кому вопрос, кто ответил и тд...
и если не важно чей ответ мне что-то прояснил
ответившему - искренний респект
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38120703
t1002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZezaMлично мне все содержательные ответы - интересны,
независимо от - кому вопрос, кто ответил и тд...

Но видимо не все поддерживают данную точку зрения.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38120777
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Папа Игорь,

Вы не задумывались, что складская БД оторванная от системы - это ваше воображение? Если используем ее в учетной системе - целью "складской БД" может быть примитивный учет, если в wms - то к "первому плану" и основной цели подходят слегка другие вещи, как то: технологические процесса само собой не без учета ТМЦ, от которого никто никуда не денется.


Папа Игорь Вот и достигнута ОСНОВНАЯ цель "Складской БД". Как это сделать "в табличном виде" смешно даже разжевывать.

Как много уже говорилось в этом топике и как я только сказал, "простая складская БД" может быть в частью сложной системы WMS или просто "самобытного" образования. И в таком случае все 4 варианта становятся на свои места исходя из задач, которые решает автоматизация склада. И само собой, процитированный выше отрывок совершенно теряет смысл, так как в простейшем случае динамические остатки в самом деле разжевывать нечего, но как только неожиданно склад становится учет тмц не только в штуках, но и в весе, как только мы подключаем модуль "снабжение" для анализа динамики остатков, как только у нас появляются "остатки на дату" мы заводит и "остатки на сейчас" и так далее, усложняя и усложняя механизмы в погоне за производительностью. И именно для этих задач были написаны данные примеры, так как я видел фактически все 4 реализации "основ складской БД" на практике и наблюдал всю эволюцию, от примитивного учета ТМЦ, до самописной WMS
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38120781
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
t1002ZezaMлично мне все содержательные ответы - интересны,
независимо от - кому вопрос, кто ответил и тд...

Но видимо не все поддерживают данную точку зрения.

Да, воспитание никогда не станет нормой, согласен.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38120786
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Папа Игорьqwerty112, как бы так помягче. :-)

Контрагентами по бизнесу могут выступать как люди так и организации. Держать их в таблице контагенты с полями для разных сущностей есть неправильно. Это понятно и начинающим.

В жизни если Вы что-то покупаете в конторе даже без заключения письменного договора считается, что договор был заключен. Это оговаривается в Гражданском кодексе. Таблица Контракт и служит для хранения этих договоров. Зачем? Ну подумайте на досуге.
Да, Ва можете провести анализ покупок-продаж на основе таблицы контрагенты, только это ограничит Вас в дальнейшем. Да и избыточной инфы наплодите (денормализуете без всякого выигрыша).

Полей в указанных таблицах вполне хватает для организации связей.

Неожиданно как-то, складской учет и продажа....
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38120802
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сосед акцессник2 qwerty112
удовлетворите любопытство пожалуйста:
Почему Вам не стыдно отвечать на вопросы, обращенные на Вам?
Потому что Вы не доверяете интеллекту топикстартера?
Или Вас так прет, что Вы просто на эту тему не задумываетесь?
ну как жжееж, вы не заметили ?
там, ведь, первая фраза ответа - сплошные "муки совести" !
эхх !

---
а серьёзно - да, я думал, что Geo - не будет отвечать на вопрос состоящий из "дурака_валяния" / "а поговорить ?"
...а ответить вам было нужно

стёбный вопрос - "сёрьёзный" ответ,
да ещё "по-пунктно", ... - "свежо" получилось, согласитесь :)

зы
впечатлил срок трансформации ваших "душевных терзаний" в "текст" :)
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38120872
автор "свежо" получилось, согласитесь :)

Нет, глупо.
Вы старательно замусориваете топик, планомерно пытаясь превратить его в клоунаду.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38120973
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сосед акцессникавтор "свежо" получилось, согласитесь :)

Нет, глупо.
Вы старательно замусориваете топик, планомерно пытаясь превратить его в клоунаду.
qwerty112 замусоривает? Я бы так не сказал. Он пытается разрешать возникающие вопросы (и, кстати отвечает лучше, чем ответил бы я). А наш с вами разговор напоминает тролленье :)

- Это всё смахивает на херню!
- Сделайте нормально.
- Мне некогда. Но раз тут никому не рады, я больше не вернусь!
- Вот другой вариант.
- А вы не лезьте, не с вами говорят.

Извиняюсь за гиперболу, но определенное впечатление складывается.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38120976
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Geo,

Основа проектирования складской бд номер 0:

НЕ на аксесе !
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38120984
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подождать, пока выйдет 17-18-я версия Оракла?
(одно время в книгах учет вели, и не жужжали)

Я не говорю, что Акцесс лучший инструмент, и сам предпочитаю для подобных задач полноценный сиквел использовать, но и акцесс в определенной мере и при определенных условиях много с чем может справиться.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38120988
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivGeo,

Основа проектирования складской бд номер 0:

НЕ на аксесе !

тут вроде и не совсем про акс, скорее про структуру бд ;) Для mysql, postgresql, mssql - не подходит?:)
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38120997
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GeoЯ не говорю, что Акцесс лучший инструмент,


Проблема в том, что аксес <...>
Модератор: Почикал. Есть масса топиков и тут, и в других подфорумах, где это можно обсудить. Не будем тут так бойко вбрасывать
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38121033
studieren
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть и у Microsoft своя заготовка "Склад.mdb" в MSA2003.
Для этого просто нажимаем Ctrl+N, затем справа щёлкаем "На моем компьютере..." (категория "Шаблоны"). После этого во вкладке "База данных" щёлкаем "Склад".

P.S.
Очень и очень примитивная база у MS. Интересно, сколько же нужно шлифовать эту базу, чтобы приспособить к реальным нуждам? :)
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38121395
Фотография Папа Игорь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинПапа Игорь,
Вы не задумывались, что складская БД оторванная от системы - это ваше воображение? Если используем ее в учетной системе - целью "складской БД" может быть примитивный учет, если в wms - то к "первому плану" и основной цели подходят слегка другие вещи, как то: технологические процесса само собой не без учета ТМЦ, от которого никто никуда не денется.
Коллега, читаем внимательно название топика. Думаем.

ОзверинКак много уже говорилось в этом топике и как я только сказал, "простая складская БД" может быть в частью сложной системы WMS или просто "самобытного" образования. И в таком случае все 4 варианта становятся на свои места исходя из задач, которые решает автоматизация склада. И само собой, процитированный выше отрывок совершенно теряет смысл, так как в простейшем случае динамические остатки в самом деле разжевывать нечего, но как только неожиданно склад становится учет тмц не только в штуках, но и в весе, как только мы подключаем модуль "снабжение" для анализа динамики остатков, как только у нас появляются "остатки на дату" мы заводит и "остатки на сейчас" и так далее, усложняя и усложняя механизмы в погоне за производительностью. И именно для этих задач были написаны данные примеры, так как я видел фактически все 4 реализации "основ складской БД" на практике и наблюдал всю эволюцию, от примитивного учета ТМЦ, до самописной WMS
ЕЩЁ раз почитаем название топика.

Мы можем долго спорить, где границы ОСНОВ ПРОЕКТИРОВАНИЯ складской БД, но я считаю, что основы должны покрыть первичное, упрощенное назначение этой БД. И как размножение является первичной задачей секса, а не удовольствие, самоутверждение и т.п., так и первичным назначением складской БД является учет ТМЦ.

А находясь в рамках основ, читай начал, нам не требуются ни модули снабжения, ни динамика остатков, ни... ну в общем весь наворот ПОЛНОЦЕННОЙ системы.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38121464
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Папа Игорь,

так предложенные варианты (хоть и не полно) , но покрывают самые основные моменты автоматизации склада(читайте, архитектуру складской бд раскрывают в самом минимум требований, т.е. без адресного хранения, партионного учета, сроков хранения и прочих наворотов). Это очевидно всем, кроме вас....вроде бы ;)
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38121581
t1002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
t1002,

p.s. имхо, чтобы спор привести во что рациональное нужно взять пример реального склада, маленького, например склад автопокрышек.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38121740
Фотография Папа Игорь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинПапа Игорь,

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

Ладно, будем считать, что мы не договорились о значениях терминов.

Для себя "Основы проектирования складской БД" я вижу, как описание процесса создания этой БД в минимально простом варианте.

А именно:
1. Анализ (тут можно и поговорить)
2. Проектирование (обосновать то или другое проектное решение)
3. Реализация (просто дать уже готовую схему).

Вот это, по моему мнению, и есть ОСНОВЫ.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38122410
полином
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это складкое слово анализ.

речь идет о системе или подсистеме управления складом (Warehouse management system)
в частности о системе автоматизации учета ТМЦ - Товарно Материальных Ценностей на складе

учет ТМЦ должен вестись в натуральном выражении на основании документов первичного учета - приходных и расходных накладных.

так?
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38122445
Фотография nord-woolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полином... на основании документов первичного учета - приходных и расходных накладных...
А нет ли каких других документов первичного учета, на основании которых могут/должны быть движения ТМЦ по складу?
зы. Я все уже позабыл. :(
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38122451
полином
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nord-woolfА нет ли каких других документов первичного учета, на основании которых могут/должны быть движения ТМЦ по складу?


есть и другие документы первичного учета кроме приходных и расходных накладных
предлагаю дополнить список

и в общем я не ставлю цели провоцировать вопросы,
просто тема большая и ее в одночасье не охватишь :)
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38122523
полином
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот типовая схема БД "склад" построенная мастером Access:
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38122532
полином
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
эта схема выходит за рамки подсистемы собственно WMS, что ИМХО и порождает разные недоразумения
в ней присутствуют избыточные для БД "чистый склад" таблицы "сделки" и "закупки"
таблица "сделки" не лишняя, просто она должна входить в рамки другой подсистемы, м.б. "учет договоров"
таблица "закупки" также не лишняя но и она должна входить в другую подсистему, м.б. "учет взаиморасчетов"
ну или как-то так...

пока предположим, что WMS должна учитывать только операции с ТМЦ на складе
или в месте хранения ТМЦ на основе документов первичного учета.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38122535
t1002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полином,

В реальности самая сложная часть - товары, там могут быть не только типы, но и категории и виды, зависит от заказчика и его учёта.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38122545
полином
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
первое, с чего я предложил бы начать, это создание самого склада или места хранения.

СкладНазвание
Организация (Подразделение как вариант)
Местонахождения
Ответственный

с полем "Ответственный" нужно будет разобраться особо
в общем случае, это П ерсона, материально ответственный С отрудник О рганизации,
которого нужно будет еще как-то создать в подсистеме "Отдел кадров" и наделить его материальной ответственностью

предположим, что теперь у нас есть несколько пустых складов "Холодный склад" "Оперативный склад" "Хозяйственный склад"
с назначенными ответственными за соблюдение режимов хранения, за сохранность ТМЦ и за исполнение операций с ТМЦ.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38122547
полином
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
t1002В реальности самая сложная часть

даже целого слона можно съесть если отрезать от него каждый раз по небольшому кусочку
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38122558
полином
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
предположим, что теперь О тветственные принимают свои С клады
т.е. вводим первичные остатки на складе по результатам инвентаризации при вступлении О тветственного в Д олжность
или при приеме материальной ответственности.

в общем-то склады могут быть пустыми :) но мы их наполним некоторыми ТМЦ

Кстати, ТМЦ это совем не обязательно товары. Это могут быть всякие хозяйственные штуки или всякая рабочая одежда, или елочные игрушки с прошлого корпоратива или оргтехника О рганизации подлежащая списанию...

заведем сами ТМЦ, за основу возьмем таблицу из Access чуть ее подправив

ТоварыМаркаТовара
ОписаниеТовара
КодТипа
ЦенаТовара
ЕдиницыИзмерения


и заведем таблицу оснований каким образом мы принимаем эти ТМЦ к учету и размещаем на складе - учтем операции с ТМЦ

ОперацииКодОперации
ТипОперации
ДатаОперации
..........

так?
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38122598
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинShark2слова про партии, без них склад мне не очень понятен. Потому что на реальном складе обычно интересно, с какого прихода товар мы продаем. Ну и выкидывать ненужные "закрытые" партии из расчетов тоже приятно, можно быстрее посчитать остатки

Все документы одинаковы, но некоторые документы одинаковее других. А именно приходные. Партиеобразующие. Если пытатся считать по партиям, то таблички получаются примерно такие

Док- номер, дата, Откуда, Куда, Тип Документа
ДокДет Ссылка на док,ссыдка на Партия, количество, Цена
Партия- Товар, НДС, Таможенная и реестровая всякая фигня
Товар- Наименование

Осталось удостовериться, что заложенная в программу логику соблюдается на складе, и там берут не какую попало коробку, а именно из нужной партии.

Это зависит от того, чем торгуем. Если йогуртом, то надо следить, так как срок годности- часть партии. Если гвозди- можно ссыпать их в одну кучу, спрашивать у человека сколько всего он хочет продать и подбирать партии автоматически. Партии нужны только для простоты расчета остатков и расчета себестоимости. Впрочем, в этом случае можно рассмотреть вариант с проведением аля 1с, чтобы партии формировались отдельно от документа в регистрах. Но в этом случае надо писать перепроведение и т.д., что усложняет. Проще готовую 1с УТ взять, она сделана именно так. Вообще трудно понять зачем вменяемый бизнесмен может заказать самописный склад, при том что УТ базовая 4,5 тыс руб стоит. Я поддерживаю складской учет на эксесе в немаленькой фармакологической фирме, но тут историческая причина. Люди привыкли и не хотят переучиваться, а когда они начинали 1с УТ еще не было. В 1с есть готовые заказы, взаиморасчеты, подборы, бланки, да много чего. Реализовать все это на эксесе много человеколет стоит.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38122600
t1002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полином,

Конечно вы глобальнее подошли, несколько складов, а не один. Конечно товар - это условная единица склада, а не товар на продажу (могут быть и поношенные перчатки, т.е. ТМЦ любые)

Имена полей в операциях наверное так должны выглядеть:
КодТипДата
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38122601
t1002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shark,

Зачем иметь две программы: свою и склад1с, когда можно в свою склад дописать? И каких лет? Максимум два месяца со всеми хотелками, даже возникающими по ходу пьесы.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38122619
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А своя то зачем? На 1с тоже писать можно. Про 2 месяца, так тынц же есть пятилетней давности)) Докажите что вы герой))
тынц
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38122637
t1002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shark,

Зачем мне писать на 1с, если я пишу на Акцесс и нахожусь на форуме Акцесс, а не на форуме 1С ?
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38122743
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полиномпредположим, что теперь О тветственные принимают свои С клады
т.е. вводим первичные остатки на складе по результатам инвентаризации при вступлении О тветственного в Д олжность
или при приеме материальной ответственности.

в общем-то склады могут быть пустыми :) но мы их наполним некоторыми ТМЦ

Кстати, ТМЦ это совем не обязательно товары. Это могут быть всякие хозяйственные штуки или всякая рабочая одежда, или елочные игрушки с прошлого корпоратива или оргтехника О рганизации подлежащая списанию...

заведем сами ТМЦ, за основу возьмем таблицу из Access чуть ее подправив

ТоварыМаркаТовара
ОписаниеТовара
КодТипа
ЦенаТовара
ЕдиницыИзмерения


и заведем таблицу оснований каким образом мы принимаем эти ТМЦ к учету и размещаем на складе - учтем операции с ТМЦ

ОперацииКодОперации
ТипОперации
ДатаОперации
..........

так?
Не так )

Ответственный, должность ответственного, основание приема и т.д. нужны далеко не всем. Все эти, назовем их "тонкости", ёмко описаны в первом посте: "Для примера к таблице Doc "пристёгнуты" справочники Контрагентов и Складов, аналогично по мере необходимости к ней или другим таблицам добавляются и другие справочники, например: валют, причин списания, корреспондентских счетов и пр." (То, что написано серым, если это принципиально, можно дописать).

Как только мы полезем в дебри, и начнем описывать какой-то гипотетический склад (а то и не дай бог "универсальный"), мы гарантированно (!) упустим что-то, совершенно необходимое в той или иной ситуации. Поэтому лучше и не начинать.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38122757
полином
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GeoКак только мы полезем в дебри, и начнем описывать какой-то гипотетический склад (а то и не дай бог "универсальный"), мы гарантированно (!) упустим что-то, совершенно необходимое в той или иной ситуации. Поэтому лучше и не начинать.

ну так и не надо начинать:) мы для тех кому "не надо" оставим пока в этом месте "заглушку"
и вообще, речь не о том, что и чего не надо, а о том, что еще надо.

предположим вот такую схему для затравки:
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38122758
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SharkВообще трудно понять зачем вменяемый бизнесмен может заказать самописный склад, при том что УТ базовая 4,5 тыс руб стоит.Зачем так сразу? Кроме невменяемости (или неопытности), могут быть и объективные причины, например уже упомянутая историческая - имеющаяся система на том же Акцессе, или зарубежные совладельцы, которые ни с какими 1С связываться не хотят, а предпочитают, чтоб их программисты имели доступ к базе в популярном формате. Да мало ли.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38122765
полином
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
t1002так должны выглядеть:
КодТипДата

я предпочитаю CamelStyle или BIG_ONES - мне так привычнее.

кроме того "Типов" может быть несколько в пространстве имен, как и "Дат".
Нужно указывать о ТипахЧего и о ДатахЧего идет речь в конкретном случае.
вдобавок это помогает избежать использования системных имен Типа "Дата"
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38122778
t1002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полином,

Про много типов могу сказать одно: у меня в одной БД штук 10 полей с названием "имя", проблем нет, таблицы ведь разные. На вкус и цвет конечно друга нет.

А что за системное имя "Дата"?
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38122785
полином
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
t1002у меня в одной БД штук 10 полей с названием "имя", проблем нет, таблицы ведь разные.

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

с мусором на лестницу, блеять!
в любом случае это отступление никак не касается обсуждаемой в топеке темы
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38122794
Фотография nord-woolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:)
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38122802
t1002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nord-woolf:)
полиномс мусором на лестницу, блеять!
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38122835
полином
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Geoи начнем описывать какой-то гипотетический склад (а то и не дай бог "универсальный")

предположим, что это склад транспортно-логистической компании, которая сама не продает "Товары"
а принимает на временное ответственное хранение имущество клиентов (частных и юридических лиц)

насколько я понимаю, при подобной постановке задачи
интерес большинства участников дискуссии
к теме обсуждения резко пойдет на убыль :)

однако давайте предположим, что клиентами склада могут быть контрагенты с разными организационно-правовыми статусами
частные лица, ИП, ООО, различные товарищества и т.п.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38122973
esr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GeoВ этом топике я опишу несколько вариантов структуры складской БД, от самого простого до довольно "продвинутых" видов, и постараюсь в нескольких словах указать их плюсы и минусы.
Geo, отличная статья! Если бы на пол-года пораньше.Мне пришлось склад написать, хотя это не моя предметная область. Среди всей информации, которую я тогда пересмотрел, такой понятной и полной не было.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38123294
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полиномпредположим, что это склад транспортно-логистической компании, которая сама не продает "Товары"Для начала надо ответить на вопрос "Зачем?".
Для того, чтобы продемонстрировать структуру бд, картинок вполне достаточно.
Для того, чтобы показать высокий класс программирования, надо либо реализовывать все приведенные варианты (опять же, в каких рамках?) и мотивировать то или иное решение, введение тех или иных справочников, признаков, категорий и т.п. - непочатый край для бессмысленных и ненужных споров, либо непонятно зачем писать свой "Борей".

Я могу предположить, что нужен не повредит сравнительный анализ быстродействия этих вариантов, без обертывания его в какой-либо интерфейс (с полями подстановок назло злопыхателям, ага :)), но тоже совсем в этом не уверен - его все-таки имеет смысл проводить в более-менее конкретных условиях. На выбранном железе, эмулируя нужное число пользователей и др.

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

P.S. Вот про партионный учет дописать, оно как бы просится. Но тут надо прорабатывать вопрос. Я знаю всего два принципиально различных варианта реализации, и не уверен, что нет других сколько-нибудь распространенных. Хорошо бы по этому поводу товарища ЛП порасспрашивать - у него и опыта больше, и голова работает не в пример моей :)

P.P.S.
t1002nord-woolf:)
полиномс мусором на лестницу, блеять!Alvk негодуэ :)
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38123507
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Было бы интересно прочитать, что-нибудь лучше чем ничего на мой взгляд. Тем более "А" вы уже сказали))
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38123636
Фотография nord-woolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полином...
насколько я понимаю, при подобной постановке задачи
интерес большинства участников дискуссии
к теме обсуждения резко пойдет на убыль :)
...
<Задумчиво> А ежели нечаянно зацепиться за описание топологии склада,
реализации алгоритмов размещения ... могет быть совсем даже наоборот. </Задумчиво>
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38123637
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полиномоднако давайте предположим, что клиентами склада могут быть контрагенты с разными организационно-правовыми статусами частные лица, ИП, ООО, различные товарищества и т.п.
А если б он вез макароны ?
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38123948
полином
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GeoДля начала надо ответить на вопрос "Зачем?".
-конечно, это была провокация.
Для того, чтобы продемонстрировать структуру бд, картинок вполне достаточно.
-м-м-м... хорошо. а то я был начал переживать
Для того, чтобы показать высокий класс программирования, надо либо реализовывать все приведенные варианты (опять же, в каких рамках?)
-речь не идет о программировании.это просто общие рассуждения и наброски
мотивировать то или иное решение, введение тех или иных справочников, признаков, категорий и т.п. - непочатый край для бессмысленных и ненужных споров, либо непонятно зачем писать свой "Борей".
-конечно, это во многом провокация

Я могу предположить, что нужен не повредит сравнительный анализ быстродействия этих вариантов, без обертывания его в какой-либо интерфейс (с полями подстановок назло злопыхателям, ага :)), но тоже совсем в этом не уверен - его все-таки имеет смысл проводить в более-менее конкретных условиях. На выбранном железе, эмулируя нужное число пользователей и др.
-эта задача потребует изрядных сил для реализации, но ничего и никому не докажет.
хотя конечно подобные вопросы (вопросы тестирования и проверки результатов) возникают естественными образом

Но приводить пример "рабочей" базы, которая не будет удовлетворять ничьим (включая ее автора) требованиям, я считаю, бессмысленно.
-я понял

P.S. Вот про партионный учет дописать, оно как бы просится. Но тут надо прорабатывать вопрос. Я знаю всего два принципиально различных варианта реализации, и не уверен, что нет других сколько-нибудь распространенных. Хорошо бы по этому поводу товарища ЛП порасспрашивать - у него и опыта больше, и голова работает не в пример моей :)
-ну чтож... будем ждать ЛП
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38123950
полином
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nord-woolf<Задумчиво></Задумчиво>
ну это уже пройденный этап :)
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38123962
Фотография nord-woolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полиномnord-woolf<Задумчиво></Задумчиво>
ну это уже пройденный этап :)
Так я примерно догадываюсь, потому и, как бы задумчиво, так мягко намекаю. :)
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38123969
полином
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nord-woolfкак бы задумчиво, так мягко намекаю. :)
тут я не могу предложить универсального решения.
точнее универсальное решение тут это "человеческий фактор" ИМХО
нужно найти и обучить персонал таким образом, чтобы те задачи,
которые решают роботизированные комплексы на огромных складах,
на небольших (относительно) складах решали конкретные люди.

если речь идет об адресации мест хранения,
для начала поможет банка с краской и кисть.

парадигма сводится к редуцированию большого количества вводных к двум ипостасям:
Единица Хранения
Место Хранения

все остальное производные и обычные подробности
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38123998
Фотография зоранее благодарень
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nord-woolfА ежели нечаянно зацепиться за описание топологии склада,
реализации алгоритмов размещения ...</Задумчиво>
не в этом форуме, вероятно.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38123999
Фотография nord-woolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полином... это "человеческий фактор" ИМХО...
Ох как вы правы. Безо всякого ИМХО.
зы. Как я устал сегодня на работе "воевать" с дураками. Пойду отсыпаться.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38124000
Фотография nord-woolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>не в этом форуме, вероятно.
Да я так, чисто теории "послушать".
Была задачка "на упаковку". Пришлось хардкодить жестко.
Бяка получилась. Надеюсь уже выкинули. :)
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38124008
полином
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nord-woolfБяка получилась. Надеюсь уже выкинули. :)

был опыт по "упаковке" вагонов.
прилада задавала схему и последовательность размещения груза в вагоне с максимальной эффективностью заполнения
получилось, но не пригодилось.

упаковка "ручками" выходит и быстрее и почти безошибочно (ее)
хотя может быть и не так плотно как программно
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38124033
полиномэта схема выходит за рамки подсистемы собственно 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) принимающий ценности сотрудник квитует прием ценностей.

Желающим оставлена возможность навести на этот процесс автоматизацию.
Сжема допускает.

Кроме того, такая акцессная схема по разнице между заказанными и полученными количествами теоретически позволяет оперировать виртуальными понятиями "товар в пути" и "потери при транспортировке".

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

некая подстава интерфейсе шаблона все-таки есть.
проектировщик интерфейса явно предполагал, что склад единственный (поняте места хранения в его сознании не выделялось) и "сотрудник" в результате просто висит в воздухе этого интерфейса никому не нужный. Разработчик интерфейса явно не знал, зачем нужен "сотрудник".
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38124203
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор"места хранения" можно считать полностью эквивалентным понятию "материально ответственное лицо", которое в данной схеме совпадает с содержимым таблицы Сотрудники.


Представил склад, где рядами стоят сотрудники(по 100 человек в ряд) и держат товары. Укомплектовка заказа происходит примерно следующим образом, после формирования документов для комплектующих (с какого места хранения сколько единиц взять товара), комплектовщик ходит между рядами людей, спрашивает: "Сколько у тебя на остатках?" и если не хватает(а между тем документ показывает, что должно хватать) судит на месте.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38124342
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вариант 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", партионным учетом и так далее.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38124343
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинПредставил склад, где рядами стоят сотрудники...

Спасибо, ваше представление ценно тем, что наглядно демонстрирует простой факт:

Когда несколько людей разглядывает одну и ту же фигу,
оказывается, что каждый из них при этом читает свою собственную книгу.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38125452
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Папа Игорь 23 янв 13, 01:01qwerty112, я не буду упрощать до "работы только с организациями". Я нарисую Вам ОСНОВЫ складской БД. Сегодня уже нет. Завтра - может вечером.
...
ии гдее ??

Папа Игорь ,

таки, да !
давайте рассмотрим ваш вариант ... !
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38125474
z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
z
Гость
такой этот топик давно был нужон
а каждую сессию его ваще нужно поднимать наверх
.... некогда ...

наткнулся сюда, когда 'писAл' очередной СКЛАД....))
тож
хотелось чего-то УНИВЕРСАЛЬНОГО как понял набив шишек: объять - необъятное хотел
....
пользую схему :

Приход-Расход - одна Таблица - все остальное - вокруг неё...

склады-то простенькие - пекарня, колбасный цех....)))

...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38126047
полином
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сосед акцессниккартинка, как схема составленная access, полностью идентична "Схеме 1" из первого сообщения Geo


вообще-то схеме_1 из первого сообщения Гео скорее соответствует схема
приведенная мной после переработки схемы построенной мастером Access.

и его выводы в отношении подобонй схемы и ее "аскетичности" в целом верны :)
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38156479
Фотография Артист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
геоОперации (проводки) + текущие остатки
Текушие остатки можно не городить в отдельную таблицу, вполне себе прилично и добротно в таблицу проводок поля добавить,
по ситуации: ostatok_in, ostatok_out или ostatok_Debit, ostatok_Credit, они тут становятся историчными и на дату выводятся.
Текущий остаток можно дублировать в таблицу "Товары/Материалы", если позволяет учет номенклатуры(уникальность по складам).
Преймущества - остатки сохраненные плюсуются с расчитанными из проводок, все из одного места и прочие ...

Функция остаток на дату, если дата не задана, лезет в таблицу "Товары/Материалы", оттуда текущий остаток. Если дата есть, селектит таблицу проводок -> по ситуации, или селектит расход - приход, либо селектит в этой же таблице сохраненные, или селектит сохраненные с прибавлением вычисляемых.
10 складов по стране, более 40 мелких баз. Все в одном Oracle, висящем в европе. Не тормозит :)

(Велосипед не мой. Забугоная erp, в россии успешно распространенная, так устроена)

А тема не для форума Access, а "Проектирование БД", не честно огораживаться и боятся детские решения показывать.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38156488
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
артистТекушие остатки можно не городить в отдельную таблицу, вполне себе прилично и добротно в таблицу проводок поля добавить, по ситуации: ostatok_in, ostatok_out или ostatok_Debit, ostatok_Credit, они тут становятся историчными и на дату выводятся.Можно и так, конечно. Но это чревато огромным, а то и невыполнимым объемом работы при изменении документов задним числом. Upd: Далее Артист, в числе прочего, сказал, что существует пример работающей базы, где документы задним числом изменяются. Вероятно, я не правильно понял, что он имеет в виду, описывая свою структуру. Upd: Хотя, конечно, вряд ли. Учитывая упомянутое 30минутное "закрытие дня".

артистТекущий остаток можно дублировать в таблицу "Товары/Материалы", если позволяет учет номенклатуры(уникальность по складам).Если я правильно понял, то это только при условии единственного склада и отсутствии перспективы изменения этого условия.

артистПреймущества - остатки сохраненные плюсуются с расчитанными из проводок, все из одного места и прочие ...Преимущества те же, что в варианте 4. Потому что единственная разница между ним и описанном вами вариантом, это отсутствие складов и объединение таблицы текущих остатков и справочника "товаров/материалов".

артист10 складов по стране, более 40 мелких баз. Все в одном Oracle, висящем в европе. Не тормозит :)

(Велосипед не мой. Забугоная erp, в россии успешно распространенная, так устроена)Королева в восхищении (с) И что?

артистА тема не для форума Access, а "Проектирование БД", не честно огораживаться и боятся детские решения показывать.:-) Детский сад.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38156520
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Следующее сообщение я удалил, поскольку оно совсем бессодержательное было. С уважением.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38294674
OLEG_ZH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые софорумцы, извините что пишу здесь, но так как специфика вопроса полностью в теме топика и отвечали здесь люди, явно владеющие не только теоретическими знаниями, все таки спрошу:

Сколько стоит создание основных таблиц, триггеров и хранимых процедур на SQL Server 2005 (с дальнейшей допиской интерфейса и остальной оснастки мной на MS Access 2003), для оптово розничной фирмы (ширпотреб, косметика, средства гигиены и т.д.). Что должно быть (в общих чертах):
1. Учет по партиям товара
2. Этапы приходных документов:
- предварительный заказ
- счет проформа (то что подтвердили поставщики для заказа)
- накладная на приход (то что реально принял склад)

3. Этапы документов расхода:
- предварительный заказ (то что хочет покупатель)
- сборочные листы (то что отправлено на склад на сборку)
- счет фактура/накладная (то что реально собрано и отправлено клиенту)

4. Пост обработка документов:
- коррекция прихода (+/-, пересорт)
- коррекция расхода (+/-, пересорт), причем в идеале как минус так и плюс могут возникнуть через 3-12 месяцев после продажи

Еще раз извиняюсь перед админами что пишу здесь, просто в работу имеет смысл писать зная хотя бы порядок цен на это, а в этом топике, повторюсь, писали ребята, которые очень похожее уже создавали.
5. Каждую ночь перерасчет таблицы ежедневных остатков по позициям (остаток на утро/приход/продажа/возврат/остаток на ночь)

6. В месяц идет около 15 000 продаж (документов), порядка 100 000 строк, около 20 поставщиков
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38294712
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю, что такое разделение труда маловероятно. Сильная сторона связки а2003 адп + мс скл сервер в возможности одновременной разработки и сервера и клиента, когда каждая из частей растет с учетом потребностей своего оппонента.

По вашему же сценарию вы должны выкатить бо-о-о-ольшой документ, в котором подробно напишете весь функционал будущей системы, по которому раздельно можно будет разработать серверную часть. Сама по себе работа по составлению такого локумента уже стоит немало.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38294740
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLEG_ZH...
Сколько стоит ...это
Вопрос Ваш в контексте форума неприличный, но, невзирая на на это обстоятельство, вот Вам ответ.

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

При персональном заказе это стоит ровно столько, сколько заявил исполнитель.

Например, если производителем работ дан ответ, что работа займет 18 человеко-месяцев, то цена окажется от 600 тыс до чуть более 6 млн. руб в зависимости от оценки человека-месяца.

Если Вы обратитесь в "магазин дешевого софта", то стоить это будет от 150руб до 4500 руб,
а если в магазин софта для наладонников, то рублей 29 или 30.

Произнесите понравившееся число. Убедитесь в том, что оно красиво с Вашей точки зрения. Вот эту сумму и называйте.
Т.к. речь идет о числах вообще - то любое из них правильное. Здесь нельзя ни ошибиться, ни прогадать.
...
Рейтинг: 0 / 0
Основы проектирования складской БД (v. 2)
    #38295374
полином
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
boobyЭто ничего не стоит.

по существу поддерживаю высказанное мнение
...
Рейтинг: 0 / 0
138 сообщений из 138, показаны все 6 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Основы проектирования складской БД (v. 2)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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