powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Схема склада. Дайте совет.
37 сообщений из 37, показаны все 2 страниц
Схема склада. Дайте совет.
    #38313851
Фотография Dr.Hofmann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

Хочу написать приложение (на java-ве) которое соединялось бы с базой для осуществления запросов, добавление удаление данных о товаре который храниться на складе. В качестве СУБД - mysql. Для хранения данных создал схему которую предполагаю использовать если она верна )))

В качестве примера взял задание одного из учебныx центров:

авторТребуется создать систему учета товаров на складе.
Основные параметры учета:
- код товара (уникальный), например артикул;
- наименование товара;
- количество едениц товара;
- еденицы измерения товара (выбор из справочника едениц измерения)
- место хранения товара (выбор из справочника мест хранения)

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

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


К сожалению не имею большого опыта в создании схем поэтому - есть то что есть ))
Ход мысли такой:
products - главная родительская (рутовая) таблица - которыя использует:

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

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

- таблицы organizations и units_measurement используют отнашение один ко многим здесь все ясно.

В общем критика приветствуется.
Если есть где ошибки или неточности оставляйте комментарии.
...
Рейтинг: 0 / 0
Схема склада. Дайте совет.
    #38313860
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо бы попросить модераторов перенести в проектирование БД
...
Рейтинг: 0 / 0
Схема склада. Дайте совет.
    #38313881
d7i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shtock,
Это учебная задача?
Если учебная, то можете лепить что угодно, не спрашивая ничьих советов...

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

P.S. Все мои скромные рассуждения базируются на более чем 25-летнем опыте разработки и эксплуатации (по сей день)
подобных систем учета...
...
Рейтинг: 0 / 0
Схема склада. Дайте совет.
    #38313898
Фотография Dr.Hofmann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Упс! уважаемые модераторы ошибся разделом перенесите пжлста в другую ветку по проектированию! спасиб.

Модератор: Тема перенесена из форума "Сравнение СУБД".
...
Рейтинг: 0 / 0
Схема склада. Дайте совет.
    #38315268
Фотография Dr.Hofmann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
d7iShtock,
Это учебная задача?
Если учебная, то можете лепить что угодно, не спрашивая ничьих советов...

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

P.S. Все мои скромные рассуждения базируются на более чем 25-летнем опыте разработки и эксплуатации (по сей день)
подобных систем учета...

К сожалению не обладаю таким долгим опытом, поэтому прошу пояснить:

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

Самый костяк склада, без которог - никак:

Справочник продуктов, как правило, иерархический.
Справочник складов/мест хранения.
Документы по движению (приход-расход).
Товары в Документах по движению.
Таблица остатков на даты.

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

Тут же возникает вопрос закрытия периодов, правки в закрытом периоде - его надо продумать как решать.

Поставщики, потребители, заказы, накладные - следующий слой учета, усложнение модели.
Учет цены (себестоимости), расчет прибыли - тоже следующее усложнение. Надо будет выбрать и реализовать ФИФО/ЛИФО/Средневзвешенное.

Еще где-то усложенние - единицы измерения, комплектация и разукомплектация. Купили 3 ящика по 12 бутылок, продали 4 бутылки и 17 бутылок.

На форуме по аксесу была специально большая тема про склад с ориентацией для новичков, с готовыми базами.
...
Рейтинг: 0 / 0
Схема склада. Дайте совет.
    #38327716
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот тут почитай.
...
Рейтинг: 0 / 0
Схема склада. Дайте совет.
    #38359494
Фотография Dr.Hofmann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old NickВот тут почитай.
Прочитал.

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

Вот что получилось:


Советы и критика приветствуется.
...
Рейтинг: 0 / 0
Схема склада. Дайте совет.
    #38359620
Dr.HofmannавторТаблица остатков на даты и таблицы движения, товары по движению взаимосвязаны.
этого я не совсем понял.
Советы и критика приветствуется.
остатки должны быть не просто по складу, а по товару (возможно, с учетом партии, цвета и др. "аналитики") на складе.
Это больше напоминает бухучет: для каждой аналитики заводите тетрадный лист и делите его на две колонки. Слева записываете приход, а справа - расход. В определенное время (например, в конце месяца) подводите итог - сальдо (остаток товара на дату).
Чтобы в следующую инвентаризацию не считать все приходно-расходные операции от "сотворения мира" Вы используете рассчитанные ранее сальдо (входящие остатки)...
Записи по приходам-расходам на листочке = таблица движения
Записи по остаткам = таблица остатков....
Как-то так...
...
Рейтинг: 0 / 0
Схема склада. Дайте совет.
    #38360307
ultima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав С...кийDr.Hofmannпропущено...

этого я не совсем понял.
Советы и критика приветствуется.
остатки должны быть не просто по складу, а по товару (возможно, с учетом партии, цвета и др. "аналитики") на складе.
Это больше напоминает бухучет: для каждой аналитики заводите тетрадный лист и делите его на две колонки. Слева записываете приход, а справа - расход. В определенное время (например, в конце месяца) подводите итог - сальдо (остаток товара на дату).
Чтобы в следующую инвентаризацию не считать все приходно-расходные операции от "сотворения мира" Вы используете рассчитанные ранее сальдо (входящие остатки)...
Записи по приходам-расходам на листочке = таблица движения
Записи по остаткам = таблица остатков....
Как-то так...

никогда не считайте то что можно хранить, остаток это конечно константа, требующая отдельной таблицы.
...
Рейтинг: 0 / 0
Схема склада. Дайте совет.
    #38360462
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Остатки не по складу и не по товару, а по товару и по складу одновременно.

Не надо хранить остатки. Их нужно вычислять по таблице приходов/расходов. Хранить предварительно посчитанные остатки нужно только при очень больших объемах, от миллиарда записей.

Я не вижу таблицы приходов/расходов (регистра то есть)
...
Рейтинг: 0 / 0
Схема склада. Дайте совет.
    #38360709
Фотография Dr.Hofmann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old NickОстатки не по складу и не по товару, а по товару и по складу одновременно.

Не надо хранить остатки. Их нужно вычислять по таблице приходов/расходов. Хранить предварительно посчитанные остатки нужно только при очень больших объемах, от миллиарда записей.

Я не вижу таблицы приходов/расходов (регистра то есть)

авторwarehouses: место хранения товара -> поле status-осотояние -> сюда будет заноситься - (приход, расход)

Или нужно заводить отдельную таблицу или хранить в другой таблице?
...
Рейтинг: 0 / 0
Схема склада. Дайте совет.
    #38361684
ultima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old NickОстатки не по складу и не по товару, а по товару и по складу одновременно.

Не надо хранить остатки. Их нужно вычислять по таблице приходов/расходов. Хранить предварительно посчитанные остатки нужно только при очень больших объемах, от миллиарда записей.

Я не вижу таблицы приходов/расходов (регистра то есть)
Вот разумный ответ.
...
Рейтинг: 0 / 0
Схема склада. Дайте совет.
    #38366285
Фотография Dr.Hofmann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав С...кийDr.Hofmannпропущено...

этого я не совсем понял.
Советы и критика приветствуется.
остатки должны быть не просто по складу, а по товару (возможно, с учетом партии, цвета и др. "аналитики") на складе.
Это больше напоминает бухучет: для каждой аналитики заводите тетрадный лист и делите его на две колонки. Слева записываете приход, а справа - расход. В определенное время (например, в конце месяца) подводите итог - сальдо (остаток товара на дату).
Чтобы в следующую инвентаризацию не считать все приходно-расходные операции от "сотворения мира" Вы используете рассчитанные ранее сальдо (входящие остатки)...
Записи по приходам-расходам на листочке = таблица движения
Записи по остаткам = таблица остатков....
Как-то так...
ясно

авторОстатки не по складу и не по товару, а по товару и по складу одновременно.

Не надо хранить остатки. Их нужно вычислять по таблице приходов/расходов. Хранить предварительно посчитанные остатки нужно только при очень больших объемах, от миллиарда записей.

Я не вижу таблицы приходов/расходов (регистра то есть)


Добавил:

...
Рейтинг: 0 / 0
Схема склада. Дайте совет.
    #38366293
Фотография Dr.Hofmann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ой й-ой
Стрелку одну не нарисовал - между products и junction_tb.
...
Рейтинг: 0 / 0
Схема склада. Дайте совет.
    #38366360
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dr.Hofmann,

Сделайте такую таблицу, а дальше пляшите от нее

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
create table TRegister
(
  ID int identity(1, 1) primary key clustered,
  Date datetime,
  FromStockID int,
  ToStockID  int,
  WareID int,
  UnitID  int,
  Quantity int,
  OperationID int
)
go



Это регистр учета. В нем регистрируете все приходы, расходы, перемещения.
Date datetime, -- Дата операции
FromStockID int, -- Со склада
ToStockID int, -- На склад
WareID int, -- Товар
UnitID int, -- Единица измерения
Quantity int, -- Количество
OperationID int -- Операция (Приход, расход, перемещение), можно ссылку на документ писать

Stock - это единый справочник всех хозяйствующих субъектов, т.е. склады, ячейки, зоны, организации, филиалы и мат-отв. лица
лучше всего сделать его иерархическим
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
-Холдинг
  - Филиал1
    - Склад1
      - Ворота1
        - Камера1
  - Филиал2
-Клиент1
-Клиент2
  -Машина1
    -Водитель1
    -Водитель2
...
Рейтинг: 0 / 0
Схема склада. Дайте совет.
    #38366364
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old Nick,

По этой таблице считайте остатки.

например, по полю ToStockID сможете определить сколько пришло товара на склад, по полю FromStockID сколько ушло товара со склада. Разница есть остаток. Если определили остаток по ячейкам, то остаток по камере должен быть равен сумме остатков по ячейкам.
...
Рейтинг: 0 / 0
Схема склада. Дайте совет.
    #38379159
Фотография Dr.Hofmann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторколичество не должно храниться в таблице предметов (товаров),

авторWareID int, -- Товар

Это не противоречит сказанному?
...
Рейтинг: 0 / 0
Схема склада. Дайте совет.
    #38379479
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dr.Hofmann,

А где тут таблица товаров?
...
Рейтинг: 0 / 0
Схема склада. Дайте совет.
    #38382078
Фотография Dr.Hofmann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old NickDr.Hofmann,

А где тут таблица товаров?

сори - ошибся,

вот переделаная схема:


критика приветствуется.
...
Рейтинг: 0 / 0
Схема склада. Дайте совет.
    #38382832
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dr.Hofmann, резервирование есть, снятия с резерва нет.
...
Рейтинг: 0 / 0
Схема склада. Дайте совет.
    #38383272
Фотография Dr.Hofmann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойDr.Hofmann, резервирование есть, снятия с резерва нет.
ок, добавим.
...
Рейтинг: 0 / 0
Схема склада. Дайте совет.
    #38383822
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dr.Hofmann,

1. Организации, филиалы, склады, отв. мат. лица - это все одна и та же сущность и должна находиться в одной таблице. Для различающихся признаков можешь сделать доп. таблицы по связи 1-к-1. То есть должна быть возможность в поле FromStockID запихнуть и склад и мат. отв. лицо и организацию. Соответственно поле OrganizationID в таблице Products будет означать только юрлицо. Фактически это будет ведение учета в разрезе юрлиц. Можешь его пока убрать.

2. Таблицу субъектов сделай иерархической. ID, Name, ParentID. А то что ты там нагородил убери.

3. Таблицу Products переименуй в Register, потому что это не таблица продуктов, а таблица регистрации хоз. операций
...
Рейтинг: 0 / 0
Схема склада. Дайте совет.
    #38394096
ShurikSNZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тоже проектируем базу учета, есть несколько вопросов:
1. Учет партий товара (приход по разной стоимости, но одного вида товара), как понять из какой партии расходовали товар?
2. Учет вложенности товара, к примеру один товар содержит несколько товаров внутри себя и одновременно находится в двух других товарах. БД не по товарам, но смысл учета остается, бухгалтерия тоже.
...
Рейтинг: 0 / 0
Схема склада. Дайте совет.
    #38394099
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShurikSNZкак понять из какой партии расходовали товар?
Для этого в расходных документах должна быть ссылка на партию.

Сборки учитываются как единое целое. До разукомплектации. При разукомплектации сборка
списывается, её составные части принимаются на учёт.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Схема склада. Дайте совет.
    #38394214
caballero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторУчет партий товара (приход по разной стоимости, но одного вида товара)
это кагбэ разные партии.
Обычно партия товара - это товар по той же цене независимо от даты поступления поставщика и т.д.
тогда упрощается учет но сохраняется возможность получать данные по разнице стоимости на входе и на выходе и получать данные о прибыли(убытке)
...
Рейтинг: 0 / 0
Схема склада. Дайте совет.
    #38394215
caballero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторУчет партий товара (приход по разной стоимости, но одного вида товара)
это кагбэ разные партии.
Обычно партия товара - это товар по той же цене независимо от даты поступления поставщика и т.д.
тогда упрощается учет но сохраняется возможность получать данные по разнице стоимости на входе и на выходе и получать данные о прибыли(убытке)
...
Рейтинг: 0 / 0
Схема склада. Дайте совет.
    #38396135
ambarka_max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прежде чем рисовать схему БД, рисуйте на листочках бизнеспроцессы, узнавайте у владельцев все ньюансы. Без этой работы схемы будут оторванны от жизни. В общем, будет полный бред.
...
Рейтинг: 0 / 0
Схема склада. Дайте совет.
    #38397382
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
caballeroОбычно партия товара - это товар по той же цене независимо от даты поступления поставщика и т.д.
тогда упрощается учет но сохраняется возможность получать данные по разнице стоимости на входе и на выходе и получать данные о прибыли(убытке)Бред. А если у товара одна цена, но разные сроки годности, сертификаты соотв., ГТД и пр. ?
...
Рейтинг: 0 / 0
Схема склада. Дайте совет.
    #38397635
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVcaballeroОбычно партия товара - это товар по той же цене независимо от даты поступления поставщика и т.д.
тогда упрощается учет но сохраняется возможность получать данные по разнице стоимости на входе и на выходе и получать данные о прибыли(убытке)Бред. А если у товара одна цена, но разные сроки годности, сертификаты соотв., ГТД и пр. ?
Зависит от потребностей учёта и объёмов. Если "разные сроки годности, сертификаты соотв., ГТД и пр. " не интересуют - зачем делить партии :)
...
Рейтинг: 0 / 0
Схема склада. Дайте совет.
    #38401819
d7i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если нужна дифференциация учета по доп. признакам (срок годности, цвет, вид упаковки и т.п.), храните привязку этих признаков к приходу (приходной накладной) или к предмету и партии. И сделайте обязательно привязку прихода к остатку на складе.
Также на складе требуется хранить идентификатор партии (уникальный порядковый номер).
Таким образом, таблица склада будет иметь поля:

идентификатор предмета
остаток
идентификатор прихода
идентификатор партии
...........

Таким образом всегда можно узнать по каким приходам товар попал на склад и каковы его доп. признаки.
Идентификатор партии может использоваться для постоения очереди (метода списания) - LIFO или FIFO...
...
Рейтинг: 0 / 0
Схема склада. Дайте совет.
    #38402080
ShurikSNZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так примерно и сделали;-)
...
Рейтинг: 0 / 0
Схема склада. Дайте совет.
    #38403773
Фотография Dr.Hofmann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old NickDr.Hofmann,

1. Организации, филиалы, склады, отв. мат. лица - это все одна и та же сущность и должна находиться в одной таблице. Для различающихся признаков можешь сделать доп. таблицы по связи 1-к-1. То есть должна быть возможность в поле FromStockID запихнуть и склад и мат. отв. лицо и организацию. Соответственно поле OrganizationID в таблице Products будет означать только юрлицо. Фактически это будет ведение учета в разрезе юрлиц. Можешь его пока убрать.

2. Таблицу субъектов сделай иерархической. ID, Name, ParentID. А то что ты там нагородил убери.

3. Таблицу Products переименуй в Register, потому что это не таблица продуктов, а таблица регистрации хоз. операций

Сделано.


авторФактически это будет ведение учета в разрезе юрлиц. Можешь его пока убрать.
Честно говоря не понял юр. лицо это юр.лицо куда его убрать?
...
Рейтинг: 0 / 0
Схема склада. Дайте совет.
    #38420991
Фотография Dr.Hofmann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и ToStockID - как-то не причем осталось - непонятно.
...
Рейтинг: 0 / 0
Схема склада. Дайте совет.
    #38451825
Paultec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.
Стоит задача сделать простой он-лайн учет товаров и взаиморасчетов с поставщиками.
Магазинов три, поставщиков около десятка, номенклатура - около 5 тыс. позиций.
Набросал такую структуру БД, покритикуйте, посоветуйте, плз.
...
Рейтинг: 0 / 0
Схема склада. Дайте совет.
    #38451853
Грамотей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dr.Hofmann,

Почему вы везде пишете "Колличество", когда нужно писать "Количество" ?
...
Рейтинг: 0 / 0
Схема склада. Дайте совет.
    #38452105
Фотография Dr.Hofmann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ГрамотейDr.Hofmann,

Почему вы везде пишете "Колличество", когда нужно писать "Количество" ?

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


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