169 похожих чатов

Уважаемые, поделитесь опытом, пожалуйста. Всякие информационные сообщения в программе хотелось

бы хранить в БД.

Например, при удалении: "Вы действительно хотите удалить ... [название элемента]?"

А название элемента передавать в параметр ХП. Строку с сообщением дергать из таблицы. Для каждого случая она была бы своя. Делали что-то подобное?

37 ответов

4 просмотра

Чем меньше мы дергаем БД по пустякам, тем лучше. :-) Я делал просто один запрос - получаем текущую локализацию всех сообщений и все. И да, с кешированием - чтобы каждый раз при запуске проги не гонять простыни

Евгений- Автор вопроса
Евгений
А куда кэшировал? SQLite?

поразному, мне проще было использовать писанный давно кусок свой - просто сохраняем данные как строку, загоняем в файл и мд5 его считаем. МД5 сохраняем в БД - при обращени прога проста считывает файлы, считаем МД5, если МД5 для каждого файла совпал - то ничего не запрашиваем с БД и сразу приступаем к работе

Евгений- Автор вопроса
Alex
поразному, мне проще было использовать писанный да...

С MD5 прикольно придумано. Спасибо большое! Возьму на вооружение

Nik
CRC32 не достаточно?

МОжно. Но как-то уж повелось, переделывать не хочу - работает и славно :)

Nik
CRC32 не достаточно?

MD5 больше уникальности. скс32 я пару раз натыкался что црц=, а данные разные, поэтому на мд5 еще в лохматом году перешел так и повелось

Ну так и уникальности больше

Михаил
Ну так и уникальности больше

Терминологию нужно правильную использовать, уникальности блин...

Александр (Rouse_) Багель
Терминологию нужно правильную использовать, уникал...

Она правильная В crc32 мы имеем 32 бита уникальных значений А в md5 мы имеем 128 бит уникальных значений В мд5 уникальности больше очевидно

Alex
MD5 больше уникальности. скс32 я пару раз натыкалс...

Да это как два пальца об асфальт сделать. Вот тебе три разных файла с одной контрольной суммой равной нулю.

Вот у меня есть блоб, в котором данные, произвольные. Crc32 выдавал несколько раз одно и тоже значение при изменении, в итоге было проворонены изменения и это было плохо очень. Перешёл на мд5 и такие приколы более не повторялись

Alex
Вот у меня есть блоб, в котором данные, произвольн...

длина блоба? и количество "провороненных" байт?

Alex
Вот у меня есть блоб, в котором данные, произвольн...

Лучше использовать Fnva1a 64 - считается быстро, коллизий мало, оперировать проще чем MD5, который неудобно в базе хранить

Alexey Kulakov
64 vs 128

ты еще попробуй столько блобов в базе накопить, чтобы получить коллизии на 64 битной хеш функции

Iluha Companets
длина блоба? и количество "провороненных" байт?

Сейчас это сложно вспомнить, но это было обновление картинок, они от 3к до 150к были и надо было отслеживать изменения при заливке новой но не триггером в бд, а внешними сервисами. Хранить вне бд был неудобно, поэтому именно так было. И вот при обнове црц32 поле считалось, и если не совпадало внешний сервис получал новый блок, и вот когда нужно это не произошло и это повлекло цепочку негативных событий

Alex
Сейчас это сложно вспомнить, но это было обновлени...

ну, то есть, обновились все байты — налицо неуместное применение алгоритма CRC

Михаил Усков
Лучше использовать Fnva1a 64 - считается быстро, к...

Фнва нету деф функции , а так в пг есть из коробки мд5, а хранить пофиг, hash индекса хватает, а уникальность индекса тут не нужна

Igor
ну, то есть, обновились все байты — налицо неумест...

Црц32 может выдать сбой и при перестановке двух байт в одних и тех же данных, но отличающимися только двумя байтами

Alex
Црц32 может выдать сбой и при перестановке двух ба...

да, потому что есть границы применения, в которых этот алгоритм доказанно срабатывает

Alex
Сейчас это сложно вспомнить, но это было обновлени...

А почему бы не хранить пару хэшей по разным алгоритмам - так вероятность коллизии будет значительно ниже?

Alexander Somov
А почему бы не хранить пару хэшей по разным алгори...

Можно, но пока мне мд5 хватает для моих целей :) делать

Alex
Црц32 может выдать сбой и при перестановке двух ба...

поясни-ка вот это, покажи на примере, что и как переставить, чтобы сумма не изменилась

Iluha Companets
поясни-ка вот это, покажи на примере, что и как пе...

я тебе там выше архив приложил с разными данными и одинаковой контрольной суммой

Александр (Rouse_) Багель
я тебе там выше архив приложил с разными данными и...

у них длина разная... и вообще - ты ж сам сказал - это разные данные меня интересует ловля искажений одних данных

Iluha Companets
у них длина разная... и вообще - ты ж сам сказал -...

Могу сделать с одинаковой длиной, меньться будут только 5 байт

Александр (Rouse_) Багель
Могу сделать с одинаковой длиной, меньться будут т...

процент изменяемой информации слишком велик давай файл килобайт, и поменяй 2 байта )

Iluha Companets
процент изменяемой информации слишком велик давай...

Могу сделать чтобы это были меговые блобы у которых будут меняться только пять байт :)

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта