|
0 / 0 / 0
Регистрация: 16.08.2017
Сообщений: 11
|
|
Организация хранение данных для будущей программы10.09.2018, 15:41. Показов 1449. Ответов 14
Метки нет (Все метки)
Доброго времени суток.
Помогите, пожалуйста, новичку ![]() Пробую сделать калькулятор стоимости изделий. Есть несколько типов изделий, несколько материалов для этих изделий, и несколько вариантов обработки. Цена на эти изделия еще к тому же зависит от тиража. Сейчас это все работает в экселе через макросы и хранение данных выглядит приблизительно так (прикрепил скрин). Мне нужно сделать удаленную БД с доступом к ней из нескольких клиентов. Никак не могу прийти к правильному формированию таблиц для БД, никак не укладывается эта разбивка по тиражам. Проблема (для меня) в том, что цена за определенный тираж указывается конкретно, это не зависимость и не расчет. Внешний вид приложения планировал таким (прикрепил скрин2) Заранее спасибо.
0
|
|
| 10.09.2018, 15:41 | |
|
Ответы с готовыми решениями:
14
Хранение данных для программы Выбор движка для будущей программы
|
|
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 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 16.08.2017
Сообщений: 11
|
|
| 10.09.2018, 16:53 [ТС] | |
|
Спасибо.
У меня на цену одной единицы изделия влияют по сути три параметра: вид изделия, вид материала, тираж. Я пока не очень представляю, как организовать удаленное хранение всех этих цен. Такой вариант, как на скрине в excel, не подходит, как я понял. А Ваш вариант, немного не то (если я все так понимаю).
0
|
|
|
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
|
||
| 10.09.2018, 19:05 | ||
|
seregaone, а по любому после расчета цены на тираж надо сохранять эту цену в партии.
Цену рассчитали, начали продажи, а цена для данной партии останется на всю жизнь. Добавлено через 1 минуту Добавлено через 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
|
|
|
|
||
| 11.09.2018, 01:34 | ||
|
Вид карты | вид материала | Тираж | Цена Металлик 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, то можно было бы оформить так (прикрепил скрин). Как так сделать в БД - основная для меня проблема.
0
|
|
|
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 строки таблицы "Цена". Оба варианта формально имеют право на жизнь. Изучайте и принимайте решение. Делать ли номенклатор для тиражей - вам решать. Будут ли тиражи 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
|
|
|
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
|
|
|
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
|
|
| 13.09.2018, 20:51 | |
|
Помогаю со студенческими работами здесь
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(), которая. . .
|