Как продумать структуру «склада» в БД?



@mrusklon

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

подскажите как продумать таблицы для этого? Первая это users самособой, вторая это сами предметы, 3 таблица это история перемещений Кто дал -> кто взял -> дата/время , может я что то упускаю?


Решения вопроса 1



@flapflapjack

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

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

Например:
Перемещение:
ИЗ: Склад Иванов. А.В.
В: Склад Погрузка на отправку.
Ответственный: Иванов А.В.

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

Тогда будут таблицы:
Юзеры
Склады
Товары
Перемещения

А вот итоговый подсчет остатков на складах делать можно уже двумя способами:
1) Либо менять в таблице «склады» кол-во товаров, и параллельно создавать запись в таблице перемещения.
2) Либо вводить начальные остатки в таблицу складов, а вот окончательный подсчет делать на основании только одних лишь перемещений.

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

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



3

комментария


Ответы на вопрос 0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *