Форум программистов, компьютерный форум, киберфорум
Разработка и тестирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 05.07.2011
Сообщений: 204

Как правильно организовать структуру хранения данных

06.03.2020, 11:33. Показов 739. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Прошу совета по базам данных.
есть задача логистики деталей со склада на участок и обратно.
как правильно организовать таблицу для данной задачи?
пример:
есть деталь (Дт - 100 шт.), участок (Уч), склад (Ск)
процедура такая.
1. Уч - запрашивает со Ск, чтобы привезли Дт в полном количестве.
2. Ск - привозит на Уч только Дт -50шт. (это нормально)
3. Уч принимает в работу Дт -50шт. и в какой то момент времени изготавливает Дт -20шт.
4. Ск - видит изготовленные Дт -20шт. забирает их на склад и помечает как оприходовано.
5. Уч доделывает оставшиеся и повторяет пп1-4 пока все Дт не будут выданы на участок.

Пока я склоняюсь к мысли, чтобы в таблицу завести колонки для каждого этапа.
получится типа:
1. в колонке (Request) появляется 100шт. - это запрос на склад
3. в колонке (inWork) появляется 50шт. (Request=0 т.к. запрос выполнен)
и т.д.
насколько это правильная организация?
или есть другие варианты?
предложенный вариант мне тоже мало нравится, т.к. маршрут достаточно сложный
и колонок получается много, очень легко запутаться.

P.S.
Если что-то непонятно, я с удовольствием поясню, очень нужна помощь
Спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.03.2020, 11:33
Ответы с готовыми решениями:

Организовать структуру данных Heap для хранения целых чисел
Помогите пожалуйста решить задачую Заранее спасибо! В этой задаче вам необходимо организовать структуру данных Heap для хранения целых...

Как лучше организовать файловую структуру хранения новостей на сайте
Как лучше организовать файловую структуру хранения новостей на сайте? Параметры новости: 1. иконка к новости (1 картинка) 2....

Как правильно организовать структуру приложения EJB
Вообщем по названию темы не совсем понятно что я имею в виду, поясню... Есть home-интерфейс EJB, есть Primary Key класс, есть...

3
2 / 2 / 0
Регистрация: 20.04.2015
Сообщений: 15
09.03.2020, 08:11
Я бы сделал так:
Если рассматривать за объект - партию деталей, а свойства этого объекта:
Порядковый номер партии (Ключ таблицы с автоинкрементом)
Кол-во деталей в партии (Положительное целое)
Местонахождение партии (Ссылка на таблицу, в которой объекты - места, т.е. Склад, Участок)
Признак оприходованности (булево)

Запись в такой таблице будет соответствовать партии деталей.
Первоначально в таблице будет 1 запись, 50 деталей, на складе, оприходованы.
Запросом к базе определяем, сколько оприходовано и на складе, меняем место на Участок. Это частично выполнен первый заказ на 100 деталей. В работе 50 деталей.
Следующим запросом к базе создаем партию 20 деталей, которая на Участке, не оприходована.
Затем меняем на ней параметр «место», это она уехала на склад.
Потом меняем признак «оприходовано» на true.
Теперь меняем «место» на «участок».

Теперь у нас на Участке 2 объекта числятся с признаком «оприходовано» true, на 20 и 50 деталей. Значит, в работе 70 деталей.
Следующий объект создаем, ещё сколько-то деталей на участке не оприходованных.
Дальше, мне кажется, всё понятно?
0
116 / 106 / 51
Регистрация: 29.03.2016
Сообщений: 480
09.03.2020, 09:34
Здравствуйте. Я буду думать что Вы уже рассматривали варианты с использованием сущестующих решений для Вашей задачи, и у Вы занимаетесь этим в целях саморазвития, ибо время Ваше в итоге может быть потрачено впустую.
Начну с того что не являюсь экспертом в данной области, и дальнейшее изложение - сугубо мое мнение на то как стоит организовать структуру базы данных.
Для начала, думаю, необходимо предусмотреть некоторую гибкость, обеспечить расширяемость и учесть возможность восстановления картыины событий. Но нужно еще понять что происходит с деталью на участке. Наверняка деталь преобретает там новые качества, что делает ее уже совершенно другой деталью, или же происходит ее износ и, возможно, в какой-то момент она будет списана, забракована или выведена из эксплуатации. Так же, желательно, определить всех лиц производящих перемещение детали и ее эксплуатацию. Чем больше будет определено и учтено этапов и звеньев на раннем этапе проектирования Вашей системы, тем меньше потом будет проблем с поддержкой системы и ее расширением.

На вскидку могу предложить следующую модель:
Деталь (Идентификатор, Наименование, ИдентификаторСостояния, [Описание, т.е. какие-нибудь характеристики детали, напр. вес, матириал изготовления, габариты и т.д.], ДатаВремяСозданияЗаписи, ДатаВремяУдаленияЗаписи)
СостояниеДетали (Идентификатор, [НаименованиеСостояния, например: активно, брак, в пути, потерян, списан, получен, выдан.. В общем нужно предусмотреть варианты], ДатаВремяСозданияЗаписи, ДатаВремяУдаленияЗаписи)
СкладХранение (ИдентификаторРядаМеста, ИдентификаторДетали, Количество, ДатаВремя, ИдентификаторСостояния, ИдентификаторКладовщика, ДатаВремяСозданияЗаписи, ДатаВремяУдаленияЗаписи)
РядМесто (Идентификатор, [СотояниеМеста, например: свободно, занято, влезет ещё, ликвидировано], Описание, ДатаВремяСозданияЗаписи, ДатаВремяУдаленияЗаписи)
Кладовщик (Идентификатор, Фамилия, Имя, Отчество, ДатаВремяСозданияЗаписи, ДатаВремяУдаленияЗаписи)
СкладУбытие (Идентификатор, ИдентификаторКладовщика, ИдентификаторПеревозчика, [ИдентификаторТранспортногоСредства], ИдентификаторДетали, ИдентификаторСостояния, ДатаВремяСозданияЗаписи, ДатаВремяУдаленияЗаписи)
СкладПрибытие (Идентификатор, ИдентификаторКладовщика, ИдентификаторПеревозчика, [ИдентификаторТранспортногоСредства], ИдентификаторДетали, ИдентификаторСостояния, ДатаВремяСозданияЗаписи, ДатаВремяУдаленияЗаписи)

Идея должна быть понятна из приведенного примера. Создаем для каждого класса сущностей свою таблицу. При изменении состояния сущности не удаляем запись физически, а просто ставим отметку в поле ДатаВремяУдаленияЗаписи и можно также добавить колонку ИдентификаторПричиныУдаления, что бы было проще восстановить картину событий, когда это понадобится.

Также для большей гибкости, например, в случае создания второго склада, можно вместо таблиц СкладХранение и Участок создать таблицы Объекты (Идентификаатор, НаименованиеОбъекта, [даты создания и удаления]) и ОбъектХранение (ИдентификааторОбъекта, ИдентификаторНахождения, ИдентификаторДетали, Количество, ДатаВремя, ИдентификаторСостояния, ИдентификаторОтветственногоЛица)

Также при организации базы возможно рпидется предусмотреть хранимые процедуры, триггеры для того чтобы обеспечить согласованность измениния записей в таблицах базы. Конечно этим может заниматься и приложение, которое будет использовать базу даннных.
Все зависит только от Вас
0
Модератор
Эксперт функциональных языков программирования
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,877
12.03.2020, 20:06
Цитата Сообщение от sonmax Посмотреть сообщение
или есть другие варианты?
Заведите таблицу для каждого типа первичного документа.
Так же, для ускорения работы можно завести таблицы-агрегаты (например, текущее количество деталей на объекте).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.03.2020, 20:06
Помогаю со студенческими работами здесь

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

Как организовать хранения данных о таблицах
Здравствуйте, мне надо создать структуру базы данных которая хранит информацию о таблицах и полях относяшихся к этой таблице.По этим...

Как организовать массив для хранения данных?
не судите только начал изучать с++ , правильно ли так сохранять все данные в массив? const int sz = 10; class publication {...

Есть над чем подумать или как правильно организовать структуру БД
Кому по зубам такая задачка? Часть первая: Например у нас есть сущность "Товары". Данные о товарах парсятся из разных мест,...

Как правильно организовать структуру отправки заявок со страницы через форму
Здравствуйте. Организовал средствами html и css три таба. По нажатию на каждый всплывает форма с полями. Заполняешь форму, жмешь кнопку и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru