mrusklon
@mrusklon
Не получается? Яростно гугли!

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

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

подскажите как продумать таблицы для этого? Первая это users самособой, вторая это сами предметы, 3 таблица это история перемещений Кто дал -> кто взял -> дата/время , может я что то упускаю?
  • Вопрос задан
  • 1522 просмотра
Решения вопроса 1
flapflapjack
@flapflapjack
на треть я прав
По идее в перемещениях товар перемещается между складами. Незачем перемещать товар между юзерами. Юзер может быть ответственный за перемещение, и быть указан, как userid в таблице перемещений.

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

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

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

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

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

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

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

Войдите, чтобы написать ответ

Похожие вопросы