Здравствуйте. Я врач на пенсии, мне 61 год, хочу реализовать свой стартап, для этого готов потратить часть пенсии и сбережения. Прошу простить за неточности изложения. Замысел: 1. Пользователь на веб форме вводит трехзначные числа от 20 до 50 (это я называю одним "запросом"). Эти данные передаются на сервер. 2. На сервере загружена таблица 5 мб и "скрипт" - защищенный/уникальный, данные обрабатываются, выбираются походящие строки и возвращаются пользователю. Вопросы: На каком языке лучше поручить написание такого "скрипта"? Какой сервер использовать для безболезненного увеличения быстродействия обработки "запросов", т.е от условных 10 "запросов" в сутки, до 100 000 тыс. в сутки. Т.е цена-качество/быстродействие. Я сторонник того, что лучше переплатить, чем экономить на мелочах.
Если весь "стартап" это ввод числа и вывод соответсвующих строк то берете самый копеечный хостинг за 300 рублей в месяц. Далее перегоняете ексель в csv и выводите строки циклом в php, или лучше сначала собрать простейший php скрипт на 100 строк и уже выгрузить на хостинг который не дороже 300 рублей. 100 000 запросов думаю выдержит сервак за 300 рублей Приведите пример файла таблицы и какие конкретно данные нужно фильтровать(от 20 до 50 это двузначные числа)
Спасибо за ответ! Таблица Эксель. Лист1. Строка 2 со столбца F Верхняя граница диапазона. Строка 3 - Нижняя. Строка 4 - Опорные значения пользователя. Пустые ячейки в строках 2,3,4 означают, что значения любые. Лист2 Шапка скопирована функцией по типу='Лист1'!F2 Столбец Е в 100Ед. Я попробовал применить коэффициенты от 1 до 100 (значения в строках меняются линейно), но таблица увеличилась в 100 раз. Насколько целесообразно выкладывать большую таблицу или делать это программно на сервере с маленькой, я не знаю. Задача найти такие строки, чтобы в сумме с опорными значениями по столбцам находились в границах диапазона. Для этого примера у меня получился такой результат. рис. ниже Такой вариант редкий, чаще найти строки не удается. Тогда нужно найти строку, которая компенсирует самые большие дефициты, сложить с опорными значениями и найти другие другие строки, т.е комбинации из двух строк. ссылка на эксель https://wdho.ru/c3mW/1234php.xlsx
1. Эксель хорош только для понимания, данные однозначно надо в БД хранить 2. Понять суть выдачи данных - реализовать нужную выборку 3. Отдать результат 100 тыс в сутки - пара запросов в секунду... ерунда. Я бы делал на php ... ну и сомнения в такой популярности запросов ))))
Тут или простецкий фреймворк типа yii1, либо прямые запросы в пхп типа select * ... where num1 > .... что не есть гуд, опять же нужно перегнать в mysql Думаю самый простой вариант - перегнать в csv и там уже просто циклом for ... производить сравнение, по крайне мере не нужно перегонять в mysql, а также можно подготовить датасеты для разных диапазонов уже отфильтрованные P.S.: python pandas напрямую делает выборки из екселя
Резюмируя: Для совсем мелких проектов нет смысла тащить простецкие фреймворки. Тогда все запросы идут через mysql что режет глаз и при разрастании проекта превращается в говнокод Если планируется проект развивать логично использовать yii1 к примеру чтобы избавиться от говнокода, но это требует более высокий порог вхождения Напрямую с екселем работает питон, можно рассмотреть django, тогда вам не нужно будет эксель никуда перегонять, ваши выборки без говнокода можно будет делать напрямую. Но django опять же это еще больший порог вхождения чем php + yii1. 100 000 человек если в сутки планируете... Реклама ппц сейчас дорогая что в поисковиках что в телеге/вк/ и прочих социалках. Это дорого, очень
Ребята, поверьте - работа с файлами .. при большом кол-ве обращений - это боль, в принципе в том числе для решения этих болей и БД придумали .... а так - начнутся блокировки, один процесс не будет давать другому файл... В целом - товарищ обозначил свою позицию, что делать будет не сам.. потому наверное нет смысла тут углубляться.... просто советую найти адекватного разработчика, который весь головняк возьмет на себя... а заказчик получит искомый результат Был вопрос - на каком языке... ну под веб это однозначно php или python и найти спецов проще и популярно... остальное - как я считаю будет неоправданно заморочено для такой задачи
Спасибо! Я не углублялся в излишние подробности, но предоставил файл. Это файл я предоставил одному Исполнителю и он собрался Коэффициенты от 001 до 100 писать вручную и запросил за это 3000 руб. Я ответил, что вручную так это и стоит, но можно сделать с помощью макроса или языка М. Спойлер: макрос Option Explicit Sub appendRows() Dim shSour As Worksheet Dim shDest As Worksheet Dim iRows As Long, iFirstRow As Integer Dim aVals As Variant, aDest As Variant Dim i As Long, j As Long, iCurr As Long, m As Integer, n As Integer Set shSour = ThisWorkbook.Sheets("Sheet1") Set shDest = ThisWorkbook.Sheets("Sheet2") iRows = shSour.Cells(Rows.Count, 1).End(xlUp).Row iFirstRow = 9 n = 100 aVals = shSour.Range("A" & CStr(iFirstRow) & ":I" & CStr(iRows)) ReDim aDest(1 To iRows * n, 1 To UBound(aVals, 2)) iCurr = 1 For i = LBound(aVals) To UBound(aVals) aDest(iCurr, 1) = aVals(i, 1) For m = 1 To 9 aDest(iCurr, m) = aVals(i, m) Next m iCurr = iCurr + 1 For j = 2 To n For m = 1 To 9 If m = 1 Then If j < 10 Then aDest(iCurr, m) = CStr(aVals(i, m)) & " 0" & CStr(j) Else aDest(iCurr, m) = CStr(aVals(i, m)) & " " & CStr(j) End If Else aDest(iCurr, m) = aVals(i, m) * j End If Next m iCurr = iCurr + 1 Next j Next i shDest.Select shDest.Cells.ClearContents shDest.Cells(9, 1).Resize(UBound(aDest), UBound(aDest, 2)).Value = aDest Set shSour = Nothing Set shDest = Nothing End Sub Но макрос или код на языке М нужно всё равно переводить на php или python поэтому и спрашивал. Тестировать программистов, кто лучше разбирается в решении таких алгоритмов (пример и вариант решения предоставил) сложная задача, ну и вопросы предоплаты. Будет, по-моему некрасиво, если несколько программистов будут тратить свое время, а вознаграждение получит один, но ведь для других я буду "редиской" = не хорошим человеком. Как поступить правильно? а пока, пытаюсь самостоятельно разобраться в функции "Подбор параметра" (Goal Seek) для нескольких ячеек.
хм .... язык М.... раньше вроде это называлось VBA )) Без предоплаты вряд-ли нормальный программист согласится, если только студент какой за еду ))) Какой смысл разбираться в функции там какой-то в Экселе? Если все равно это потом будет сделано не в нём..... для себя чисто если А так .... не только подбор исполнителя тяжелая задача, выбор заказчика тоже всегда несет за собой риски
@filmchess, Я тебе больше скажу - ты можешь вообще бесплатно на ухаха сделать. Лишь бы логичные вопросы были https://chat.qwenlm.ai/
Спасибо! Извиняюсь, что не ответил сразу. Пытался понять существует ли решение?! Да, существует, в Excel - Расширенный фильтр. Код (Text): ="<="&ЕСЛИОШИБКА(EXP(LN(ИНДЕКС(Лист1!$F2:$EY2;(СТОЛБЕЦ()-1)/2+1)-ИНДЕКС(Лист1!$F4:$EY4;(СТОЛБЕЦ()-1)/2+1)));9^9) Слова об избыточном коде произвели на меня большое впечатление. Макрос писал не я, просто показал пример как одно решение можно выполнить за 3 минуты вместо 24 часа. Сам вряд ли освою программирование, уже старый. Поэтому и задачу разделил на части. В какую сумму оценить решение Задачи в https://php.ru/forum/threads/kakoj-skript-samyj-bystryj.103751/#post-669645 Пункт 1 пропустить (можно не делать), т.к самостоятельно увеличил Таблицу до 100 мб Еще раз спасибо!