powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Хранение в БД проектов накладных
13 сообщений из 13, страница 1 из 1
Хранение в БД проектов накладных
    #32343938
Алекс В.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день всем! Хочу спросить совета в следующей ситуации:
В БД (складской учет) в деталях накладных хранятся

Номер докмента (ПК)
Код товара (ПК)
Партия (ПК)
Кол-во

Вопрос: Как хранить ПРОЕКТЫ накладных - в них нет понятия "Партия", т.к. он вычисляется в момент акцепта, исходя из актуальных остатков по партиям

Сейчас ( в старой структуре) хранится с указанием "партия" =1, хотя такой партии может и не быть -> нарушение DRI. Хочется этого избежать, но не создавать отдельную таблицу для ПРОЕКТОВ с другой структурой.
...
Рейтинг: 0 / 0
Хранение в БД проектов накладных
    #32344014
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что такое ПРОЕКТ накладной?
-- Tygra's --
...
Рейтинг: 0 / 0
Хранение в БД проектов накладных
    #32344029
AlexB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значит надо завести такое понятие как "состояние накладной". В состоянии "Проект" - это просто набор товаров, ни к чему ни привязанных. Потом какой-нибудь алгоритм переводит накладную в состояние "Обработано" (например) - и в этот момент товар завязывается на партию, "исходя из актуальных остатков по партиям "
...
Рейтинг: 0 / 0
Хранение в БД проектов накладных
    #32344061
Андрей Бабенко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рекомендую вам создать таблицу "Счета", а уже на её основании формировать накладную, "исходя из актуальных остатков по партиям "
...
Рейтинг: 0 / 0
Хранение в БД проектов накладных
    #32344572
Алекс В.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2tygra: ПРОЕКТ - это набор кодов товаров и количества, ПЛАНИРУЕМЫХ к проведению в дальнейшем. т.о. нет партий и соответственно других атрибутов, подвязанных на конкретную партию (цена, усл. поставки, поставщик и тд)

2AlexB: Разумеется, такое понятие "статус" присутствует. Остновной вопрос в другом: в проекте НЕТ партий - а я хочу сделать FK (код товара+партия) на таблицу всевозможных партий (справочник).

2Андрей Бабенко: Я несовсем понимаю зачем мне "счета" в складском учете. Если вы имеете в виду "виды движения" (типа приход от поставщика, возврат поставщику, списание, корректировка, возврат от покупателя и т.д.) то они , конечно же, есть. Или вы предлагаете использовать для Проектов отдельные коды движения? Но это не решит поставленную проблему.
...
Рейтинг: 0 / 0
Хранение в БД проектов накладных
    #32344610
Андрей Бабенко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как правило документу отгрузки (накладной) предшествует что-то - договор, спецификация, счёт и т.п. на этом этапе часто бывает, что товара какого-то нет.. или нехватает...
У вас эта ситуация - "проект накладной", что по сути является счетом...
Вот и храните в это счетах, или назовите эту таблицу как вам больше нравится... Как раз нормальный подход, решающий проблему.
...
Рейтинг: 0 / 0
Хранение в БД проектов накладных
    #32344650
Алекс В.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 АндрейБабенко: Т.е. Вы предлагаете отдельную таблицу для проектов накладных?
...
Рейтинг: 0 / 0
Хранение в БД проектов накладных
    #32344679
Андрей Бабенко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да
...
Рейтинг: 0 / 0
Хранение в БД проектов накладных
    #32345212
Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алекс В.Остновной вопрос в другом: в проекте НЕТ партий - а я хочу сделать FK (код товара+партия) на таблицу всевозможных партий (справочник).

Я может что-то не понимаю, но если партия это FK - то почему тогда пока накладная это ПРОЕКТ, не держать это поле в состоянии NULL?
В этом случае никаких противоречий нет и потом просто останется заполнить поле и все дела ...

Andrey
...
Рейтинг: 0 / 0
Хранение в БД проектов накладных
    #32345262
Андрей Бабенко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я может что-то не понимаю, но если партия это FK - то почему тогда пока накладная это ПРОЕКТ, не держать это поле в состоянии NULL?
В этом случае никаких противоречий нет и потом просто останется заполнить поле и все дела ...


К сожалению, в реальной жизни может оказаться, что не получится выдать весь заказаный товар одной партии... т.е. заказали 100шт. Есть 60шт. партии А и 40шт. партии B...
а ещё бывает частичная выдача товара...
в предложеном вами варианте придется поболе изголяться, чем иметь отдельну таблицу в которой хранить эти "проекты"...
...
Рейтинг: 0 / 0
Хранение в БД проектов накладных
    #32345271
Алекс В.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Andrey: Спасибо за идею, я об этом не подумал, тк вначале планировал
составной ПК, включающий код товара+партия. Если отказаться от ПК, то это возможно.
...
Рейтинг: 0 / 0
Хранение в БД проектов накладных
    #32345274
Алекс В.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 АндрейБабенко: Вы правы, расщепление на партии и будет происходить в 50% случаев при измении статуса проект-> акцепт
...
Рейтинг: 0 / 0
Хранение в БД проектов накладных
    #32347844
Фотография UK0IAI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть пример решения задачи следующим образом

1. Таблица Документов
2. Таблица строк документов

Здесь может быть сохранен любой документ в любом статусе...например счета или накладные.. вообще - любые типы документов...

3. Есть таблица важная очень - таблица перекрестных ссылок.

Если какой либо документ создается путем (частичного использования) из другого - то:

эта таблица хранит в себе:

1. Ключ
2. Дата дежурная
3. Тип записи

3. ИД документа основания (источника)
Тип документа основания (источника)
Номер строки документа основания (источника)
Дата документа основания (источника)

4. ИД документа причины (приемника)
Тип документа причины (приемника)
Номер строки документа причины (приемника)
Дата документа причины (приемника)

5 Код задачи (операции)

6. ИД объекта (типа ИД товара, например)
Тип объекта (типа разное можно...что угодно... в итоге)

7 Кол-во объекта -- позволяет все узнать "потом" ...сколько "взяли" с проекта...типа...

8 Код единицы измерения объекта
9. Коэф_пересчета единицы к базовой ...в момент учета (проводки)!!

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

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

В этой таблице есть избыточная инфо:
Дата документа основания (источника)
Дата документа причины (приемника)

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

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

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

Но надо понимать, что при базе в миллионы строк - в таком табло будут 10-ки миллионов строк....

Такая табло оказалась удобной для хранения оплат счетов...где в разделе
Приемник - просто прописываются ИД платежки....в разделе Онование - ИД строки накладной.....что позволяет потом видеть дебиторов-кредиторов с точностью до товара!!....

А если платежка - ВзаимоЗачет - то это тоже здесь все "идеально" хранится.

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


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