Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 16.08.2017
Сообщений: 11

Организация хранение данных для будущей программы

10.09.2018, 15:41. Показов 1449. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Помогите, пожалуйста, новичку
Пробую сделать калькулятор стоимости изделий. Есть несколько типов изделий, несколько материалов для этих изделий, и несколько вариантов обработки. Цена на эти изделия еще к тому же зависит от тиража. Сейчас это все работает в экселе через макросы и хранение данных выглядит приблизительно так (прикрепил скрин). Мне нужно сделать удаленную БД с доступом к ней из нескольких клиентов.
Никак не могу прийти к правильному формированию таблиц для БД, никак не укладывается эта разбивка по тиражам. Проблема (для меня) в том, что цена за определенный тираж указывается конкретно, это не зависимость и не расчет.
Внешний вид приложения планировал таким (прикрепил скрин2)

Заранее спасибо.
Миниатюры
Организация хранение данных для будущей программы   Организация хранение данных для будущей программы  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.09.2018, 15:41
Ответы с готовыми решениями:

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

Выбор движка для будущей программы
Простите, если выбрал не тот раздел. И подскажите, какой выбрать. Пишу создатель окон под названием "DCASTF" - "Data...

Хранение(сериализация) данных для программы
Доброго времени суток. В чём лучше всего хранить данные?

14
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
10.09.2018, 16:35
seregaone, здравствуйте!

Тогда вводите партионный учет.
Один тираж - одна партия. У партии будет фиксирована своя цена.

Партия товара:
- ID партии товара.
- ID типа изделия.
- ID материала изделия.
- ID варианта обработки.
- Тираж, штук
- Цена.

Номенклаторы типа изделия, материала, варианта обработки - примитивные справочники.

Ничего же сложного нет. Всё как обычно - начать и кончить.
0
296 / 125 / 106
Регистрация: 30.10.2015
Сообщений: 690
10.09.2018, 16:39
Цитата Сообщение от amr-now Посмотреть сообщение
Ничего же сложного нет. Всё как обычно - начать и кончить.
Не думал, что Вы настолько фанат программирования
0
0 / 0 / 0
Регистрация: 16.08.2017
Сообщений: 11
10.09.2018, 16:53  [ТС]
Спасибо.
У меня на цену одной единицы изделия влияют по сути три параметра: вид изделия, вид материала, тираж.
Я пока не очень представляю, как организовать удаленное хранение всех этих цен. Такой вариант, как на скрине в excel, не подходит, как я понял.
А Ваш вариант, немного не то (если я все так понимаю).
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
10.09.2018, 19:05
seregaone, а по любому после расчета цены на тираж надо сохранять эту цену в партии.
Цену рассчитали, начали продажи, а цена для данной партии останется на всю жизнь.

Добавлено через 1 минуту
Цитата Сообщение от seregaone Посмотреть сообщение
как организовать удаленное хранение всех этих цен
В СУБД естественно. Причем сейчас практически в любой. Они сейчас все хорошие.

Добавлено через 5 минут
Кстати, непонятно - как за разные товары устанавливается цена за определенный тираж.
Отдельный номенклатор коэффициентов цены?
0
0 / 0 / 0
Регистрация: 16.08.2017
Сообщений: 11
10.09.2018, 23:02  [ТС]
Возможно я не смог корректно все объяснить.
У меня есть продукт - пластиковая карта. Могут применяться виды (карта размера 1, размера 2 и т.д.), материалы (пластик 1, пластик 2, и т.д.), и необходимый тираж.
Данная программа - калькулятор для Заказчика, он выберет вид изделия, материал и необх тираж. А калькулятор ему покажет цену за 1 карту и за весь тираж.
Цена за карту для Заказчика варьируется в зависимости от выбранного тиража. Именно в этом для меня проблема.

Я понимаю, что это СУБД и их много хороших. Я понимаю, что будут связанные таблицы, а именно "вид карты", "вид материала", "тираж". Не понятно, куда вбить цену за карту, если для ВИДА 1 и МАТЕРИАЛА 1 она будет х.хх / шт. при тираже 100 шт и у.уу / шт при тираже в 10000 шт.

С excel проблем не было. Назвал первый лист - "ВИД 1", вбил в столбец А список материалов, а в строку 1 - тиражи с определенным шагом, и заполнил тело таблицы ценами (это видно на прикрепленном в первом посте скрине).
Но в БД я ведь не смогу сделать такие таблицы?
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
11.09.2018, 01:34
Цитата Сообщение от seregaone Посмотреть сообщение
Не понятно, куда вбить цену за карту, если для ВИДА 1 и МАТЕРИАЛА 1 она будет х.хх / шт. при тираже 100 шт и у.уу / шт при тираже в 10000 шт.
Например, создаёшь таблицу вида:
Вид карты | вид материала | Тираж | Цена
Металлик MINI | Глянцевая | 500 | 0,186
Далее ты получаешь в программе по первичному ключу ([Вид карты], [Вид материала], [Тираж]) значение из столбца [Цена].
0
0 / 0 / 0
Регистрация: 16.08.2017
Сообщений: 11
11.09.2018, 07:18  [ТС]
Вот тут я и застрял. У меня 5 видов карт, 5 материалов и 15 тиражей. Многовато как-то табличек выйдет. На крайний случай можно и так, думал уже. Но пока ищу ещё вариант. А то вдруг решит фирма ещё 1..2 вида материалов добавить и 2..3 вида карт. Я и закопаюсь совсем.
0
0 / 0 / 0
Регистрация: 16.08.2017
Сообщений: 11
11.09.2018, 09:05  [ТС]
Если представить данные в excel, то можно было бы оформить так (прикрепил скрин). Как так сделать в БД - основная для меня проблема.
Вложения
Тип файла: xlsx bpc.xlsx (11.2 Кб, 2 просмотров)
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
11.09.2018, 09:12
seregaone, Вам уже Casper-SC подсказал направление:

Таблица "Цена":
1) ID вида карты.
2) ID вида материала.
3) ID тиража или само количество (тираж) будет являться идентификатором.

4) Непосредственно цена.


Здесь могут быть два варианта развития проекта:
а) Завести отдельный ID строки таблицы "Цена". (С одним полем работать будет проще. А на сочетание 1) 2) 3) повесить отдельное ограничение UNIQUE. )

б) Сочетание 1) 2) 3) само сделать первичным ключом без отдельного выделения поля под ID строки таблицы "Цена".

Оба варианта формально имеют право на жизнь. Изучайте и принимайте решение.

Цитата Сообщение от seregaone Посмотреть сообщение
У меня 5 видов карт, 5 материалов
Отдельными простенькими номенклаторами. В основной таблице "Цена" нужны только ID их строк.

Делать ли номенклатор для тиражей - вам решать.

Будут ли тиражи 1000 и 1003 штуки? Или навеки жестко по заранее оговоренным количествам?
1
0 / 0 / 0
Регистрация: 16.08.2017
Сообщений: 11
11.09.2018, 22:54  [ТС]
Спасибо, на определенные размышления подтолкнули. Буду думать, пробовать.
А тиражи можно ставить любые, просто цена за 1 шт при тираже в 1000 будет немного выше, чем за 1 точно такую же при тираже от 1001 до 5000 шт.

Например, цена за карту "стандарт" - "белый пластик" будет равна при тираже:
1...99 шт - 1.00 $
100...499 шт - 0.80 $
500...1000 шт - 0.70 $
1001...10000 шт - 0.55 $

и т.д. Чем больший тираж Заказчик будет заказывать, тем дешевле ему выйдет цена за карту.
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
12.09.2018, 10:46
seregaone, кстати сейчас подумал - в будущем цена на 1)2)3) будет меняться и нужно ли сохранять старую цену?

Если да, то отдельный ID строки в таблице "Цена" однозначно нужен, и ограничение UNIQUE на 1)2)3) нельзя применить.
0
0 / 0 / 0
Регистрация: 16.08.2017
Сообщений: 11
13.09.2018, 09:53  [ТС]
Цена будет меняться, да. Причем буду делать форму для директора, он эти расценки будет менять со временем.
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
13.09.2018, 11:47
Лучший ответ Сообщение было отмечено seregaone как решение

Решение

seregaone, поэтому уникальный ID вообще практически для каждой строки у таблиц является лучшим решением:
1) Он намного удобнее для обработки и короче, чем уникальное сочетание трех полей.
2) При наличии даты строки позволяет хранить динамику изменения данного уникального сочетания трех полей.
0
0 / 0 / 0
Регистрация: 16.08.2017
Сообщений: 11
13.09.2018, 20:51  [ТС]
Спасибо за советы, буду разбираться дальше.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.09.2018, 20:51
Помогаю со студенческими работами здесь

Хранение данных программы в переменных
Добрый день, Помогите пожалуйста навести порядок у меня в голове. У меня есть несколько форм, на главной куча лейблов, на других...

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

Хранение в массиве данных программы тестирования
Не выходит создать массив, в котором будет храниться информация: вопрос и варианты ответов(программа-тестер)!

Модель данных будущей БД
Здравствуйте. Сомневаюсь в своей составленной схеме модель данных будущей БД. Вот что у меня получилось. Скрин model_dannih.jpg ...

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


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru