Завтра
у тебя стартап?
нет, порофлить хочу
Евгений
забанят
Завтра
я же не писать
Завтра
чо вредные такие
Завтра
spasibo
Vladimir
Лучшеб на вопрос ответили
Евгений
могу только ai-bolit посоветовать
Евгений
поможет или нет - не знаю. мне помогал
Евгений
можно ещё гит на сервак поставить - сразу будет видно, в каких файлах изменения
Seva
@webwork
А есть что-либо такого только по ботам Телеграм ?
Сергей
Доброе утро! Какие подводные камни могут быть при использовании абстрактных статических методов в классе? Пример: abstract class BaseClass { abstract public static function myMethod(); }
Anonymous
Да никаких
Anonymous
Кроме того, что ты должен у наследников всю эту ебаназию реализовать
Bohdan
Здравствуйте Есть таблица в БД, в которой есть постоянно пополняемая программой клиентская статистика, за ночь с помощью одного клиента таблица выросла в размер 17800 записей, занимает места 3,6 МБ По грубым подсчетам, если 24\7 клиентов будет 200 + посчитать на 30 суток, итого за месяц БД вырастет в 21,6 ГБ, а записей в ней около 106 миллионов На перспективу будет очень затратно хранить такие объемы Подскажите, пожалуйста, какие есть способы для минимизации занимаемого таблицой базы данных места?
SarcasmIO
пример записей
Bohdan
Структура таблицы такая
Bohdan
The Ant
хеш если всегда есть то его char(32) сделать. id, program_id, user_id сделай unsigned
The Ant
program_id если немного программ можно сделать либо tinyint либо smallint
The Ant
юзеров если 200, то smallint с запасом будет
The Ant
типы если список определенных, то выставить как enum
The Ant
сильно сократит размер базы на объемах
Bohdan
сильно сократит размер базы на объемах
Благодарю! Сделал все кроме unsigned - не нашел такого типа в их выборке Итого 21554 записей и 4,2 МБ
Bohdan
Какие есть варианты еще уменьшить?
Bohdan
Потенциальный размер на диске
Alexandr
По грубым подсчетам в лог пишется запись каждые две секунды ... От одного клиента ... Думается мне, что при таком потоке такой объем данных это нормально
The Ant
Благодарю! Сделал все кроме unsigned - не нашел такого типа в их выборке Итого 21554 записей и 4,2 МБ
в пхпмуадмине при редактировании колонки там есть attributes (атрибуты), вот там выставляй unsigned
Alexandr
А чем unsigned поможет? О_о ... Занимает столько же
Alexandr
Мб, стоит задуматься о том, чтобы писать в elk и на регулярной основе переносить в архивы
The Ant
А чем unsigned поможет? О_о ... Занимает столько же
а зачем автоинкрементным идам хранить знак?
Alexandr
Незачем) ... Но в контексте решения проблемы с местом - излишнее действие)
Сергей
Лучше так не делать. Вероятно ты что-то делаешь не так. Какую задачу ты хочешь решить с их помощью?
У меня есть таблица товаров и отдельные таблицы на каждый тип товара. Для товаров и типов товаров есть отдельные классы-сущности. В классе типов товаров делаю статическую функцию, которая возвращает экземпляр класса типа товара по id
The Ant
совсем не лишнее
Alexandr
совсем не лишнее
Места меньше занимать не станет -> в решении проблемы не поможет -> действие в контексте лишнее ¯\_(ツ)_/¯
The Ant
ладно
Seva
Где Артур Евгеньевич? 🤔
🐴
У меня есть таблица товаров и отдельные таблицы на каждый тип товара. Для товаров и типов товаров есть отдельные классы-сущности. В классе типов товаров делаю статическую функцию, которая возвращает экземпляр класса типа товара по id
active record? ну тогда наверно поздно уже. но вообще смешивать доменную логику и логику персистентности в одном объекте - нарушение SRP. Если тебе нужно делать такие сложные штуки, и если еще не сильно поздно, обрати внимание на Data Mapper, например доктрину.
SarcasmIO
доктрина)0
🐴
я хз че там в yii, но подозреваю, что поздно
SarcasmIO
с его богомерзким ->save() :D
🐴
ну то есть не исправить уже
🐴
тогда пофиг
Сергей
Да, AR из коробки, но я его оборачиваются в репозиторий ч домене. Только через него сохраняю.
🐴
статическими методами лучше не увлекаться, ибо это сильное связывание
🐴
если у тебя есть репозиторий, то логика работы с БД должна быть там, а не в статических фабриках
Сергей
если у тебя есть репозиторий, то логика работы с БД должна быть там, а не в статических фабриках
Работа с БД там и происходит. Мне из основного товара нужно получать данные, специфичные для типа товара (это отдельная сущность), я знаю класс типа товара и хочу вызывать $class::getById($id), в каждом типе товара будет реализация, где будет обращение к нужному репозиторию
Bohdan
Самые перспективные на мой взгляд направления: 1. Подумать, а нужно ли такое частое логирование 2. Подумать, а нужно ли так долго хранить статистику (месяцы) 3. Посмотреть в сторону elk (по месту мб и не выиграете, но от кучи проблем в будущем избавитесь)
1. К сожалению нужно - это БД статистики для пользователя, чтобы он в удобный ему момент мог отслеживать процесс работы на сайте 2. Такой вариант логичный, единственное - не хотелось бы чистить (уже как статистика для себя, темп роста сервиса) 3. Ушел гуглить)
🐴
Нет
экземпляры типов товара нужны, чтобы инстанцировать основной товар?
🐴
Нет
тогда я запутался. нужен пример какой-то
Bohdan
тот кто работал с его api)
SarcasmIO
я думаю много кто :D
Сергей
экземпляры типов товара нужны, чтобы инстанцировать основной товар?
Они нужны в случаях, когда требуется информация, специфичная для типа товара. В остальных случаях идёт работа только с основным классом товара
SarcasmIO
вопрос лишь в цене
Bohdan
Какой порекомендуете VPS? SSD от 50 ГБ, RAM.от 2 ГБ, ЦП от 2х2.0 ГГЦ, желательна хотя бы минимальная защита от ддоса от провайдера и стабильная работа
Alexandr
1. К сожалению нужно - это БД статистики для пользователя, чтобы он в удобный ему момент мог отслеживать процесс работы на сайте 2. Такой вариант логичный, единственное - не хотелось бы чистить (уже как статистика для себя, темп роста сервиса) 3. Ушел гуглить)
Если динамический доступ к старым данным не требуется, то периодическое сбрасывание в архив может помочь ... Или периодическая агрегация данных в общие показатели и выпиливание ненужной детализации
Anonymous
Всем привет, кто может написать программу : - для парсинга людей из чатов телеграм - для автопересылки сообщений из одного канала телеграм в другой - для рассылки сообщений по базе Отпишите в ЛС Ваши цены
🐴
тогда я запутался. нужен пример какой-то
закинь в ООП-чатик, там помогут. @oop_ru
Сергей
закинь в ООП-чатик, там помогут. @oop_ru
Но вообще думаю всё таки правильнее будет сделать наслудуемые классы... подумаю)
The Ant
репозиторий поверх AR, ну вы извращенцы
Константин
Народ ,подскажите, как будет выглядеть запрос , нужно скопировать из одной строки title , text ,where id=3 и вставить в другие строки где id =44,57,33,29
Evgeniy
если есть такая возможно
Seva
@arturpanteleev спился кажется 🍺
invariance
не заходите это обман что бы набрать классы
Red
Есть список материалов с которыми работают редакторы, и десятки редакторов. Как решить проблему чтоб несколько редакторов не взялись за работу над одной и той же статьёй? Материалы короткие, вероятность что в одну секунду возьмутся за один материал - большая