powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Структура хранения документов
15 сообщений из 15, страница 1 из 1
Структура хранения документов
    #32345581
Kostjan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребят, как бы оптимальным образом хранить документы типа Приходная накладная, Расходная накладная, Накладная на перемещение (или это просто пара накладных расход/приход?), Списание. Задача стандартная - склад.
Интересует только хранение шапки документа, а не его содержание. С сожержанием все понятно.
Нужно ли в шапке иметь два атрибута - от кого/кому? Тогда как будет выглядеть документ на списание?
Вообще есть где нить грамотное описание структуры классического склада? Просто интересно глянуть как все это дело профессионалы обустраивают...
Заранее благодарен за советы.
СПАСИБО!
...
Рейтинг: 0 / 0
Структура хранения документов
    #32345669
ale-805
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не профи, но храню так (и проблем пока не имел):
Таблица "Docs" - основные характеристики документа (то, что присутствует у всех видов документов): doc_id, doc_date, type_id (тут идентифицируется тип), deleted, locked, ...
Для приходных накладных:
Таблица "PNkHead" - атрибуты шапки ПНк: клиент, склад, валюта, и т.д.
Таблица "PNkTable" - атрибуты таб. части ПНк: товар, количество, цена, и т.д.

Таблицы шапки и таб. части привязываются к таблице "Docs" по doc_id.

Принцип понятен?
...
Рейтинг: 0 / 0
Структура хранения документов
    #32345687
Kostjan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Просто как дважды два - уникальные поля сущности вынес в соответствующие талицы. Как до меня сразу не дошло так сделать? :) Спасибо!
...
Рейтинг: 0 / 0
Структура хранения документов
    #32345688
Kostjan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ale-805 , еще забыл спросить - для чего поле "locked"?
...
Рейтинг: 0 / 0
Структура хранения документов
    #32345689
Kostjan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сори, сразу не обратил внимания... А есть ли смысл выносить приходные накладные в отдельную таблицу? Чем приходные накладные от расходных отличаются? Как потом остатки на складах считать... ?
...
Рейтинг: 0 / 0
Структура хранения документов
    #32345770
ale-805
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"locked" у меня означает, что документ блокирован для редактирования (поднимается при открытии кем-то документа, опускается при закрытии), но с блокировками есть много реализаций, не уверен, что моя оптимальная.
Насчет ПНк и РНк...: Я храню каждый вид документа отдельно. Это лишь информация о документе, к остаткам это не имеет отношения, остатки я храню отдель в таблицах регистров: "RegProducts" например:
CREATE TABLE [dbo].[RegProducts] (
[RegProducts_id] [int] IDENTITY (1, 1) NOT NULL ,
[doc_date] [datetime] NOT NULL ,
[doc_id] [int] NOT NULL ,
[doctype_id] [int] NOT NULL ,
[storage_id] [int] NOT NULL ,
[product_id] [int] NOT NULL ,
[client_id] [int] NULL ,
[curr_id] [int] NOT NULL ,
[curr_rate] [decimal](18, 5) NOT NULL ,
[debkred] [tinyint] NOT NULL , (вот здесь и хранится, приход или расход)
[quantity] [decimal](18, 3) NOT NULL ,
[total] [decimal](20, 10) NOT NULL ,
[primeTotal] [decimal](20, 10) NOT NULL ,
[priceTotal] [decimal](20, 10) NULL
) ON [PRIMARY]
GO
...
Рейтинг: 0 / 0
Структура хранения документов
    #32345794
Kostjan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С лочкой понял, спасибо. С документами правда не совсем понятно. Все-таки зачем отдельные таблицы? Или тут есть какой-то скрытый подводный камень?
В итоге по минимум тогда надо иметь хотя бы 4-е таблицы с документами - приход, расход, списание, перемещение. Так?
С остатками понятно. Запись в регистр лучше сажать на триггер? И у документа тогда в принципе должен быть признак проводки?
Да еще вопрос. Промежуточные остатки ты где нить хранишь или все расчитывается только по регистрам?
Спасибо огромное за разъяснения! Хоть немного стало что-то прорисовываться. Просто у меня уже был печальный опыт написания складской системы, когда не продумал структуру и в итоге проект загнулся :(
Еще раз благодарю за разъяснения!
...
Рейтинг: 0 / 0
Структура хранения документов
    #32346165
ale-805
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВсе-таки зачем отдельные таблицы?\r
Просто у меня атрибуты ПНк и РНк не совсем одинаковые, а всякие NULL\'ы в этом случае хранить не хочу. Так мне поспокойнее, а для SQL Server\'а какая разница, скока у него таблиц?\r
авторИ у документа тогда в принципе должен быть признак проводки?\r
Есть такая буква в этом слове.\r
авторПромежуточные остатки ты где нить хранишь или все расчитывается только по регистрам?\r
Пока просто в регистрах, потом хочу написать подсистему хранения остатков. Была интересная тема, посмотри: тута вот
...
Рейтинг: 0 / 0
Структура хранения документов
    #32346190
Ingvarwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня сейчас тоже проект, в котором есть и складской учет. На мой взгляд, все документы, которые мы используем для склада имеют одинаковую структуру:
Шапка:
Номер документа

Дата документа

Автор документа

Клиент кому

Клиент от кого

Склад-отправитель

Склад-получатель
Табличная часть:
Список товаров с необходимыми аттрибутами (нет необходимости их перечислять.
В моей системе есть следующие складские документы (с указанием соотв. аттрибутов шапки для указанной структуры):

Приходная накладная: Клиент кому — Фирма-хозяин склада, Клиент от кого — Фирма поставщик, Склад-отправитель — В данном случае указывается склад "Поставщик", что означает, что этот склад не принадлежит системе, Склад-получатель — Склад фирмы

Точно так же работает расходная накладная, только уже склад-получатель указывается как "Покупатель"

Перемещение между складами тоже точно также, только клиентом указывается одна и та же фирма

Я к чему это тут описываю — хочу показать, что документы, которые обрабатывают данные склада, можно построить по одному принципу и хранить их все в одной таблице (шапки), а во второй хранить движения.
Как насчет такого варианта?
...
Рейтинг: 0 / 0
Структура хранения документов
    #32346702
Kostjan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 ale-805
С ПНк и РНк понял. Правда интересно, в чем различия?
Да, еще вопрос по структуре "Регистра". Я смотрю ты делаешь две записи на одну проводку (ушло с одного, пришло на другой склад). А не сталкивался (или не было мыслей) в одну запись свернуть? Типа:
--
Товар
Куда
Откуда
Сколько
--
В чем могут быть траблы или приимущества такой формы записи?

2 ingvarwolf
А зачем так много аттрибутов? В чем принципиальная разница между "Клиент от кого" и "Склад-отправитель"?
--
Клиент кому
Клиент от кого
Склад-отправитель
Склад-получатель

К тому же, как будет тогда выглядеть документ на списание товара? Какой-нить фиктивный склад "списание"?

Вот табличую часть всех документов в принципе наверно можно хранить в одной таблице. Там ведь получается только номенклатура да количество сидит, которое во всех документах одинаковое.
...
Рейтинг: 0 / 0
Структура хранения документов
    #32347084
Ingvarwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем так много аттрибутов? В чем принципиальная разница между "Клиент от кого" и "Склад-отправитель"?
--
Клиент кому
Клиент от кого
Склад-отправитель
Склад-получатель

К тому же, как будет тогда выглядеть документ на списание товара? Какой-нить фиктивный склад "списание"?
Так много аттрибутов создано на тот случай, если поля "Клиент кому" и "Склад-получатель" имеют разные типы. У меня просто они имеют разные типы.
Все вместе эти аттрибуты не используются в каждом документе. В расходной накладной используются [Клиент кому], [Склад-отправитель]; в приходной — [Клиент от кого], [Склад-получатель], в перемещении — [Склад-отправитель], [Склад-получатель], а в списании можно использовать только [Склад-отправитель].
...
Рейтинг: 0 / 0
Структура хранения документов
    #32347562
Kostjan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Ingvarwolf
Понял, спасибо!

2ale-805
Куда же ты пропал? :(
...
Рейтинг: 0 / 0
Структура хранения документов
    #32348033
ale-805
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тута я.
По поводу
автор
А не сталкивался (или не было мыслей) в одну запись свернуть? Типа:
--
Товар
Куда
Откуда
Сколько
--
В чем могут быть траблы или приимущества такой формы записи?

Не думал об этом. Если такая мысль возникает только из-за уменьшения количества записей, то, думаю, это неактуально (дублирование будет происходить только в 1 случае из 13, т.к. только в "Перемещении", а это 1/13 часть всех видов документов в нашей системе). А в остальных 12-ти плодить NULL-ы как-то не с руки.. Хотя на вкус и цвет..

А насчет
автор
Вот табличую часть всех документов в принципе наверно можно хранить в одной таблице. Там ведь получается только номенклатура да количество сидит, которое во всех документах одинаковое.

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

Есть еще вопросы, задавай.
...
Рейтинг: 0 / 0
Структура хранения документов
    #32348326
Фотография UK0IAI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если делаете новое все - то во все шапки Документов всегда добавляейте поле - Код фирмы_хозяина. Люди любят в одной проге вести учет сразу по всем конторам...что у них есть....

Я это поле обозвал CD_SELF Оно также присутсвует всегда в любом фильтре (отчета...запроса...)

И также - в таблицах описывающих некоторые настройки, например - списки бланковок (шаблонов) ....печати накладных.... ибо...им требуется иметь чуть-чуть разные внешние виды...этих самых шаблонов... чтобы никто догадаться не смог что все на одном принтере печатали :-)
...
Рейтинг: 0 / 0
Структура хранения документов
    #32351153
Youry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В шапке документа очень полезно иметь поле, которое отражает состояние документа (статус). Например:
1 - черновик
2 - готов
3 - состоялся
4 - проведен бухгадтерией

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


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