powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Снабжение и склад
5 сообщений из 5, страница 1 из 1
Снабжение и склад
    #37914743
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде, не новичек в БД, но со складом и снабжением ранее не сталкивался. Попробовал построить БД и столкнулся с некоторыми проблемами, решение которых с ходу не нашел.
SQL Server 2005
С одной стороны - есть склады - каждый склад представляет собой векторное пространство адресов. На каждом одресе могут храниться несколько разных или одинаковых деталей. В принципе, сложностей у меня не вызывает. Берем во внимание, что есть таблица со своим ид.
Детали на склад поступают от поставщика(ов) в соответствии с заказами (таблица) + позиции заказов (таблица). Заказ может быть как на различные детали, так и на одинаковые, но с разной датой доставки. Для доставленых деталей таблица Доставок + деталировка доставки. Доставка по позициям заказа может быть как частичной, так и объединенной для одинаковых деталей с разной датой доставки. Вместе с доставкой приходит либо Упаковочный лист либо платежка либо эти два документа вместе. Но одна платежка может придти и сразу на несколько доставок (упаковочных листов ИЗ РАЗНЫХ заказов!). Здесь у меня возникает первае сомнение. Понятно, что номер Упаковочного листа должен быть полем в табл.Доставок. А как быть с Платежкой? Прописать ее здесь же - вроде как отойти от нормализации. Иначе - добавлять еще 2 таблицы - Платежка и ее упаковочные листы. Не то чтобы я экономил на таблицах, но, во-первых, таблиц набирается немало. Во-вторых, не очень вижу как потом управлять этими таблицами: ввел номер платежки, нашел в справочнике поставщика, выбрал заказ 1, выбрал все упаковочные листы к нему, перешел ко второму заказу... Слишком много действий.
Далее, усложнения. Детали иногда приходят некачественные и приходится их отсылать по рекламации: документ на рекламацию (таблица), позиция(ии) по рекламации. Затем, возврат из рекламации - опять 2 таблицы. Детали со склада направляются подрядчику для изготовления полуфабрикатов - еще 2 таблицы. От подрядчика возвращаются остатки + 2 таблы. Подрядчик возвращает на склад полуфабрикат + 2 таблицы. Возможны рекламации полуфабрикатов + 2 табл на возврат + 2 на приход. Движение между складами - передача с одного склада на другой - 1 таблица. Отправка готовой продукции заказчику + 2 тбл... Здесь мой второй вопрос: как справиться с этим движением? Для каждого движения строить свою таблицу складского движения - адрес склада, ид из соответствующей таблицы или как то можно построить одну таблицу двжения по складу с глобальным индитификатором. Что тоже нарушает нормализацию с одной стороны. А с другой усложняет процесс ввода данных: сначала придется заполнять эту таблицу, получать индитификатор и заносить его вместе с данными в соответствующую тбл.
Наверное, сумбурно несколько описал. Готов ответить на любые вопросы.
...
Рейтинг: 0 / 0
Снабжение и склад
    #37914992
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. "Векторное пространство адресов" - несколько необычный термин для складского учета. Имеется в виду физическое расположение внутри склада (номер стеллажа - полки - коробки), или что-то другое?

Вместе с доставкой приходит либо Упаковочный лист либо платежка либо эти два документа вместе. Но одна платежка может придти и сразу на несколько доставок

2. Отделить мух от котлет, то есть заказ товара от его поставки, а поставку товара - от его оплаты. Это разные процессы, разные документы. Связанные, но разные.

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

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

В общем, на данном этапе отодвиньте БД, рисуйте документооборот, и выделяйте сущности. Результат в в студию для обсуждения.

И поищите по форуму слова "склад", "партионный учет". Готовые куски обсуждались неоднократно.
...
Рейтинг: 0 / 0
Снабжение и склад
    #37915011
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rivkin DmitryЗдесь у меня возникает первае сомнение. Понятно, что номер Упаковочного листа должен быть полем в табл.Доставок. А как быть с Платежкой?
Формально связь разных документов и их строк состава - многие ко многим.
Например одна строка заказа может быть оплачена несколькими разными платёжками. А может быть наоборот, одной платёжкой оплачено несколько разных строк заказа. Поэтому прямых ссылок быть не должно, так как они работают только при прямой генерации дочерних документов. Точнее, если только прямая генерация дочерниз документов - ими можно обойтись, но в общем случае - нет. Нужны отдельные "связки". Если рассматривается какая-то очень ограниченная ситуация - тогда возможно есть и особенности.
...
Рейтинг: 0 / 0
Снабжение и склад
    #37915120
stwom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rivkin Dmitry,
типа,
ТЗ - сам-себе...
имхо, поэтому - столкнулся с некоторыми проблемами, решение которых с ходу не нашел...
Уважаемый,
а на бид-4 будет продолжение ?
...
...
Рейтинг: 0 / 0
Снабжение и склад
    #37915443
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat Fisher, Сергей Васкецов
Спасибо за конструктивные замечания. Поизучаю и подумаю. Структуру обязательно выложу попозже
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Снабжение и склад
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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