:: Не фоксом единым
Re: Нужен алгоритм
ssa

Сообщений: 13115
Откуда: Москва
Дата регистрации: 23.03.2005
kornienko_ru
"Костыли", "взрослая" и тому подобные высказывания — это ваше восприятие от вашего умения. То, что для вас может костыли, на самом деле инструмент.
О, давненько не тусили тут "открыватели глаз". Вы действительно верите/думаете, что тутошний народ нуждается в "просвещении"?
Цитата:
Например, в VFP есть такие операторы, которых скорей всего нет во "взрослых" БД.
Ибо они там как собаке пятая нога?
Цитата:
Я имею в виду команды сохранения и восстановления переменных.
Да-да, они самые. Интересно, зачем взрослому серверу сохранять клиентские переменные, к которым он и доступа то не имеет, и знать про них ничего не знает?
Цитата:
Это просто шикарно — запустил программу и все необходимые переменные с прошлого сеанса у тебя сохранены.
А какое это отношение имеет к серверу?
Цитата:
Думайте, учитесь....
Ну точно, очередной мессия и просветитель.
Цитата:
Иногда это поможет, там, где ваши "взрослые" будут бессильны.
А мужики-то и не знают...

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Нужен алгоритм
kornienko_ru

Сообщений: 415
Откуда: Владивосток
Дата регистрации: 06.09.2015
Сергей, я бы так не скал, что здесь очень просвященые. Даже судя по их вопросам. И к вашему сведению MS VFP может быть и клиентом и сервером. По крайней мере так его задумывала Корпорация MS. К тому же создатель темы четко писала, что у неё клиент и на нём БД.
Ratings: 0 negative/0 positive
Re: Нужен алгоритм
PaulWist

Сообщений: 14819
Дата регистрации: 01.04.2004
kornienko_ru
А кстати что насчет быстродействия? Например VFP — одна из самых быстрых.

Всё зависит от массы факторов, в общем случае (для сферического коня) фокс имеет достаточно посредственную производительность, более того легче перечислить, что фокс "умеет", чем перечислить, что фокс "не умеет". ;)

kornienko_ru
А то что касается объема... конечно крупные БД это не её, а до 1 млрд. записей — без проблем

Мда, а теперь посчитайте, какой тип данных можно "затолкать" в табличку с 1 млрд записей (даже если определить поле/поля not null) для размера 2Г??


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Нужен алгоритм
ssa

Сообщений: 13115
Откуда: Москва
Дата регистрации: 23.03.2005
kornienko_ru
Сергей, я бы так не скал, что здесь очень просвященые.
Разумеется. Мы ж на техническом форуме и потому тут святость как рыбе зонтик.
Цитата:
Даже судя по их вопросам.
Очередная ошибка выжившего. Знающим нет смысла что-то здесь спрашивать и их здесь не видно. Видны как раз незнающие.
Цитата:
И к вашему сведению MS VFP может быть и клиентом и сервером.
Да ладно! А я уж и забыл, что узнал об этом 20 лет назад.
Цитата:
По крайней мере так его задумывала Корпорация MS.
Взрослые сервера тоже умеют быть клиентами.
Цитата:
К тому же создатель темы четко писала, что у неё клиент и на нём БД.
Похоже у кого-то свое оригинальное понимание слова "клиент".

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Нужен алгоритм
kornienko_ru

Сообщений: 415
Откуда: Владивосток
Дата регистрации: 06.09.2015
PaulWist,
посмотрите описание SQLite. Там описана логика целостности транзакции следующим образом:
1. Перед началом транзакции SQLite создает журнал.... не указано где этот журнал создается. Похоже в временных тектовых файлах. Почему так думаю? Если в самой БД, то это крайне не надежно. При выключении питания, журнал может также испортится, как и БД из-за наличия кешей (они в ОП). Я создаю переменные тревоги в отдельном файле при открытии каждого файла и по необходимости в той же директории, что и сама БД, такие переменные сразу же сохраняются на диске встроенной командой VFP.
2. SQLite, если вся транзакция не завершена, восстанавливает записи из журнала на состояние до начала транзакции, а если завершена — удаляет журнал (считай текстовый файл). Я делаю что-то аналогичное, только с переменными в ОП и сохраняю их.
3. Я это делаю не везде, а только для открытия dbf для контроля целостности cdx-файлов и по необходимости при определенных комплексных заменах. Но замечу., что таких замен я лично избегаю еще на этапе проектирования структуры БД. Можно сделать такую структуру, что БД будет портится при каждом аварийном случае, а можно такую, что БД будет всегда целой. Это отдельная тема. Подозреваю, что SQLite возможно в чем-то опережает VFP, а в сохранении транзакций уступает выше описанной применяемой мной схеме. О чем я выше вам уже писал, но вы не поняли. И это никакие не костыли, это нормальный алгоритм, который закладывается мной при создании программ, а про многие общие вещи я даже и не вспоминаю, т.к. пользуюсь своим фреймворком, где все это уже есть. Могу добавить, что порча файлов у меня встречалась в начале 90-х, когда я был новичком в foxpro, и тогда мне и пришлось изменять подход и делать наработки. Дальше у меня этой темы не возникало. Но попав к вам на форум, мне приходится объяснять всякие азы. И я это могу для вас делать, но некоторые как то неразумно такое "просвещение" (термин Сергея) воспринимают. Костыли как раз возникли у Тани с её "взрослой" БД. О чем я вам и писал, что это субъективное понятие. Поэтому поскольку здесь "технический форум" давайте пользоваться конкретикой, а не литературными образами, как это сделал Сергей в предыдущем сообщении, даже ему не отвечаю....



Исправлено 2 раз(а). Последнее : kornienko_ru, 02.04.24 03:57
Ratings: 0 negative/1 positive
Re: Нужен алгоритм
PaulWist

Сообщений: 14819
Дата регистрации: 01.04.2004
kornienko_ru
PaulWist,
посмотрите описание SQLite. Там описана логика целостности транзакции следующим образом:
1. Перед началом транзакции SQLite создает журнал.... не указано где этот журнал создается. Похоже в временных тектовых файлах. Почему так думаю? Если в самой БД, то это крайне не надежно. При выключении питания, журнал может также испортится, как и БД из-за наличия кешей (они в ОП). Я создаю переменные тревоги в отдельном файле при открытии каждого файла и по необходимости в той же директории, что и сама БД, такие переменные сразу же сохраняются на диске встроенной командой VFP.
...

Почему надо гадать "на кофейной гуще", когда есть оф. дока WAL-mode File Format WAL File Format и даже на русском разжевано, какие текстовые файлы, вы о чём

kornienko_ru

2. SQLite, если вся транзакция не завершена, восстанавливает записи из журнала на состояние до начала транзакции, а если завершена — удаляет журнал (считай текстовый файл). Я делаю что-то аналогичное, только с переменными в ОП и сохраняю их.
...
Подозреваю, что SQLite возможно в чем-то опережает VFP, а в сохранении транзакций уступает выше описанной применяемой мной схеме.
...

Бл... сильно

Вопрос, в транзакции сохраняете, например 1000 записей по 20 полей на запись скажем в 10 табличках (например, вполне жизненная ситуация - пришел заказ, при его сохранении происходит резервирование товара на складах, "выписка"/подготовка черновика счёта, накладной, счета-фактуры, расходных накладных складов итд - напоминаю, всё это происходит в одной транзакции), сколько переменных сохраняете, как затем восстанавливаете сохраненные переменные в записи табличек, что делаете если значения переменных конфликтуют с PK/FK ??


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)




Исправлено 1 раз(а). Последнее : PaulWist, 02.04.24 08:58
Ratings: 0 negative/0 positive
Re: Нужен алгоритм
AndyNigmatec

Сообщений: 1758
Откуда: Волгоград
Дата регистрации: 28.06.2015
"Пришли на горку с санками, вместо снега пошел дождь ... Нас это огорчит, но не остановит!" (с)
Ratings: 0 negative/0 positive
Re: Нужен алгоритм
of63

Сообщений: 26603
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Я поступаю примерно так:
- есть некий семафор, например товар
- клиент заказывает товар на сайте
- я "блокирую" товар, даю клиенту информацию о количестве, наличию...
- проходит время "ковыряния в носу" клиента, и он наконец дает согласие на покупку, или отказ от покупки
- я генерю инфу, что товар заказан, и "разблокирую" товар

Недостаток очевиден - пока клиент думает над кнопкой "купить/некупить" товар "заблокирован", и другой клиент его может увидеть в этом состоянии
Поэтому делаю сложнее - состояние "заблокирован" (T/F) заменил на несколько состояний (0-свободен, 1-выбирается к покупке, 2-выбран к покупке). Да, сложнее алгоритм (вместо 2х состояний - три, ну, а куда деваться...) Возможно, механизмом "транзакция" в БД не удастся обойтись, она для "атомарности" изменения в БД (много связанных таблиц), а не для логики приложения, мтк.
Ratings: 0 negative/0 positive
Re: Нужен алгоритм
AndyNigmatec

Сообщений: 1758
Откуда: Волгоград
Дата регистрации: 28.06.2015
В простом случае можно поступить проще - "кто первый встал того и тапки", ну а возможные конфликты разруливать на уровне БД/транзакций ...
Ratings: 0 negative/0 positive
Re: Нужен алгоритм
of63

Сообщений: 26603
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Нет, "загвоздка" во времени "ковыряния в носу" клиента, который первый "наступил на тапки".
Надо усложнять алгоритм общения с клиентом, таким, который утром наступает на общественные единственные тапки, и снимает их вечером, когда проспится, даже не сходив в них поссать.

> на уровне БД/транзакций
Да, есть разница -
- на уровне БД - можно сделать несколько вариантов занятия тапок
- транзакция - это просто процесс записи в БД желаемого состояния тапок, сделанного на основе выбора тапок клиентом утром, а записываем вечером...
Сложно что-ли представить механику?

Доб. Я сделал по простому
-занимаю "товар" "если я зашел в него (типа повыбирать действия с ним). Никто не может совершить никакие действия с "товаром", если он занят выбиральщиком (ковыряльщиком в носу)
- освобождаю товар, когда ковыряльщик перестает ковырять в носу, или истекает таймер соединения при бездействии
- да, грубый способ!
- предложил же усложнить до алгоритма с "тремями" состояниями
- предложите, что делать, если "товар" (билет на поезд, например) в процессе выбора действия, и второй клиент тоже видит этот билет, и тоже хочет, думает .ковыряет в носу... Ну, ктол первый начал ковырять в носу... Это и есть программирование реальной фигни всякой. Пиши, че...



Исправлено 2 раз(а). Последнее : of63, 05.04.24 22:01
Ratings: 0 negative/0 positive
Re: Нужен алгоритм
AndyNigmatec

Сообщений: 1758
Откуда: Волгоград
Дата регистрации: 28.06.2015
таки и я про это, в простейшем случае, сколько бы клиент не думал, только в момент подтверждения его "раздумий" и происходит фактическое "резервирование" товара с учетом того что осталось за время пока он в носу ковырялся, ежели что-то уже скончалось - то "извиняй братан" )))
Ratings: 0 negative/0 positive
Re: Нужен алгоритм
of63

Сообщений: 26603
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
"В простейшем случае" было в институте, Андрей. Щас жесткая епля, за каждую трудовую копейку, за каждый неполученный рупь прибыли... "работодателем" и государством)
Ratings: 0 negative/0 positive
Re: Нужен алгоритм
AndyNigmatec

Сообщений: 1758
Откуда: Волгоград
Дата регистрации: 28.06.2015
Смею заверить, в большинстве продажных систем/программ так и работает, никто не блочит товар на время размышлений покупателя. Исключения разумеется тож есть - типа "vip-клиенты" или там тендеры какие.
Ratings: 0 negative/0 positive
Re: Нужен алгоритм
of63

Сообщений: 26603
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
> Смею заверить
Не думаю, что ты точно знаешь, как написали эту деталь твои "большинства продажных систем"
Пишут конкретные люди, с конкретными предпоченниями )

Не заморачивайся про "кто как пишет" (что муссируется на этом форуме, это не очень правилньо), пиши сам, юзай, тырь код, у других.

Доб. Ты пасешься на нашем форуме по фоксу, значит другие оказались хуже, или не лучше. Ну, цени, что есть )

() Хотя, какие мы фоксисты...
() какой-то Цын..хауз... не помню, один из физических разрабов фокса под Винду, видно что уровни разраба (что закладываешь в прогу) и пользователя стстемы (что юзеры - прогеры - дебилы) и щас видно, на порядок-два ниже.
() До сих пор помню Цынгауза некого (единственного), вышедшего на связь с нами (с не со мной, это бвло давно)...

() "пасешся" - это не оскорбление.. Не буду ассоциации, ... "не бросаешь"... типа того )



Исправлено 6 раз(а). Последнее : of63, 05.04.24 23:12
Ratings: 0 negative/0 positive
Re: Нужен алгоритм
AndyNigmatec

Сообщений: 1758
Откуда: Волгоград
Дата регистрации: 28.06.2015
Я ж не программист ... так любитель )))
Ну и пасемся мы там где нам комфортно, мне тут хорошо
Ratings: 0 negative/0 positive
Re: Нужен алгоритм
AndyNigmatec

Сообщений: 1758
Откуда: Волгоград
Дата регистрации: 28.06.2015
of63
Не думаю, что ты точно знаешь, как написали эту деталь твои "большинства продажных систем"
Пишут конкретные люди, с конкретными предпоченниями )

Нифига подобного, предпочтения пишущих тут на десятом-двадцатом месте, а первично ТЗ, либо оно же выраженное неявно в виде "хотелок".
Ratings: 0 negative/0 positive
Re: Нужен алгоритм
kornienko_ru

Сообщений: 415
Откуда: Владивосток
Дата регистрации: 06.09.2015
PaulWist
]PaulWist,
Вопрос, в транзакции сохраняете, например 1000 записей по 20 полей на запись скажем в 10 табличках (например, вполне жизненная ситуация - пришел заказ, при его сохранении происходит резервирование товара на складах, "выписка"/подготовка черновика счёта, накладной, счета-фактуры, расходных накладных складов итд - напоминаю, всё это происходит в одной транзакции), сколько переменных сохраняете, как затем восстанавливаете сохраненные переменные в записи табличек, что делаете если значения переменных конфликтуют с PK/FK ??
Не вы выдумываете какие-то не реальные для жизни задачи, вернее их осуществление. Проблем никаких нет. Всё можно сделать на чем угодно. Раньше все от руки писали и на счетах считали. А если вам всё чето-то мало и не хватает, значит проблема в вас.

Я вообще сюда заглянул по консультации по вашей теме взрослых баз. Хочу пойти навстречу пожеланиям и включить в свой web-сервер какую-нибудь взрослую (хотя здесь бы больше подходило — молодую) СУБД. Несколько дней пытался прикрутить упомянутый Таней продвинутый по количеству миллиардов записей и терабайтам SQLite. Получилось только на последнем .NET 8. У меня и у многих этот рантайм не установлен, не хотелось бы клиентов нагружать излишней установкой чего-то дополнительно.... таков мой принцип... используй то, что есть в системе Windows и всё, что бесплатно. Хотя все идет к тому, что надо переходить на .NET, у него установщики и для Linux есть и много чего интересного, например F#, аля забытый фортран, уникальность которого в том, что он есть и компилятор и интерпретатор, я обязательно на него перейду с WSH и c#. Второй вариант, который мне удался без .NET 8 (Подключиться, погонять SQL тесты) это — сервер MS SQL Express LocalDB, правда все равно надо небольшой установщик скачать и установить сам сервер LocalDB https://go.microsoft.com/fwlink/?linkid=2215160. Это совместимая с MS SQL СУБД, но усеченная для одного сервера и бесплатная, типа аля SQLite. Что вы думаете об этой СУБД? Она приличная, взрослая? По моим ощущениям с ней нет никаких проблем, все интерфейсы стыкуются, устанавливается и работает всё как по маслу....
--
Сам себе отвечаю.... Нашел официальную информацию, что у MSSQL Express ограничение на размер БД — 10Г .... Тане не подойдет... Тогда ориентируюсь на MS .NET.



Исправлено 1 раз(а). Последнее : kornienko_ru, 06.04.24 10:50
Ratings: 0 negative/0 positive
Re: Нужен алгоритм
AndyNigmatec

Сообщений: 1758
Откуда: Волгоград
Дата регистрации: 28.06.2015
Ну а почему только мелкомягкие? Разные есть варианты, сейчас вот постгрес в теме. Я лично до сих пор firebird юзаю, да, по некоторым фичам и вкустностям он проигрывает MS SQL, но при этом он opensorce, есть хоть под виду хоть под линухи, размер БД ограничен только мощностью вашего железа и фантазии )))

Мне комфортно на 40-60 Гб базе жить - данных для текущей работы достаточно и при этом бэкап-рестор не напрягает.
По скорости могу сказать тож - обработка ежедневной текучки (порядка 10 млн. записей) сейчас на обычном офисном компе - 10-15 мин, много ранее на фоксовых таблах это было не менее получаса да еще с периодическими проблемами.
Ratings: 0 negative/0 positive
Re: Нужен алгоритм
kornienko_ru

Сообщений: 415
Откуда: Владивосток
Дата регистрации: 06.09.2015
Да, я на эту СУБД давно обратил внимание. Тоже в названии есть Fox. Даже поигрался. Мне лично понравилось, что ничего устанавливать не надо, просто скоровал программу в папку и она прекрасно из командной строки работает. Но прочитал отрицательные отзывы, что базы портятся, база не надежная. После этого все это удалил. Сейчас по совету Тани опробовал SQLite. У меня он заработал на Net только выше 4 версии, где собственно ввели команду консоли dotnet. Сейчас последняя 8-я версия Net, но на моем ПК она не работает. 2 дня ковырялся с Windows. В конце даже её переустановил. Ошибка fatal error никуда не делась. В интернете только спрашивают, что за ошибка на 8-ой версии, но никто не знает. Видимо я первый делаю резюме, что Net 8 просто не работает на старых ПК, как у меня ... на сокете LGA 775. 7-я версия Net работает, поэтому уже определился с языком и базой. Кстати кроссплатформенно. Привлёк F#. Тоже есть буковка от фокса и старого фотрана, мелочь, а приятно, и тоже интерпретатор и мощный компилятор. Ну об SQLite вроде нет отрицательных отзывов.
Ratings: 0 negative/0 positive
Re: Нужен алгоритм
AndyNigmatec

Сообщений: 1758
Откуда: Волгоград
Дата регистрации: 28.06.2015
С firebird таких траблов нет, ставится на все )))
И кстати просто скопировать его нельзя - его нужно таки устанавливать, но там не нужно быть админом - тупо дистрибутив запустил.
Дополнительно настроить сервак - там уже чутка почитать надо что за что отвечает, но ничего сверхъестественного, если просто поиграться - то вообще ничего крутить не надо, все заработат по дефолту.
Что касаемо поломки базы - сколько раз свет рубили никаких проблем не было. Проблема возникла когда винт посыпался - но это для любой базы задница.
Ratings: 0 negative/0 positive


Эта тема закрыта.

On-line: 9 (Гостей: 9)

© 2000-2025 Fox Club 
Яндекс.Метрика