- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть в общим такая задача:
1. Таблица tbl1, tbl2, ... tblx
2. В них колонка lock (int)
Для некоторых записей колонка может принимать разные значения, в самих таблицах контент. Т.е. контент иногда блокируется, а в БД идут запросы типа
И еще всякие разные, я хочу заблокировать контент т.е. поставить lock = 1, например, и запись не должна выводится в запросе для определенного пользователя mysql, т.е. запрос то что выше для примера должен так проходить, якобы записи вообще нет, то есть все это ради того чтобы избавится от:
А не дать mysql пользователю получить запись, может еще есть какие-то варианты как это сделать не ресурсоемко? Записей может быть много и хочется сэкономить время и не править запросы, ну и ресурсы по возможности
А опишите пожалуйста какую задачу в итоге вы хотите решить, я к ему это, просто желательно обходится без тригеров, в хайлоде не поощрается.
donriga,
Временно заблокировать часть записей (в нескольких таблицах), записи отличаются от остальных одной колонкой со значением = 1.
Нужно, чтобы mysql пользователь в своих запросах не мог делать для них SELECT, пока я не верну значение колонки <> 1
может быть создать view в которой будет отдаватся только то что сможет видеть пользователь, view для того чтобы не менять запросы.
donriga,
view это что? В смысле ф-ю в php или где?
Мне просто хочется время сэкономить и не следить за этим в коде, а обойтись как-нибудь процедурой и "включать"/"выключать" их
Триггеры в базе данных — это разновидность хранимых процедур.
Конкретно в вашем случае нужно просто переделать запросы и добавить в них необходимое условие.
[umka],
Черт, а я то надеялся :( В принципе условие я как понял наступает после выполнения запроса.... А вообще есть подобное в mysql? Или других СБД? Т.е. получается мне нужно поменять запрос "на лету", если выпоняется условие и добавить условие, чтобы не править запросы
view - это view (ру) - можно создать вьюшку для таблицы, в которой будут содержаться только нужные записи (при этом старую таблицу переименовать, а вьюшку обозвать по имени таблицы). Правда есть некоторые ограничения на выборку из вьюшек
http://dev.mysql.com/doc/refman/5.6/en/create-view.html
+ есть особенности http://www.mysqlperformanceblog.com/2007/08/12/mysql-view-as-performance-troublemaker/ (хотя, на малом количестве данных тормоза не критичные)
Мне просто хочется время сэкономить и не следить за этим в коде, а обойтись как-нибудь процедурой и "включать"/"выключать" их
Сэкономишь сейчас - заплатишь потом.. с процентами. Даже термин существует Технический долг.
А включать/выключать можно и в коде (настройка в конфиге /в файле/базе/ где он там хранится + проверка.. если настройка включена - формировать запрос с учётом доп. условия)
+ есть особенности http://www.mysqlperformanceblog.com/...-troublemaker/ (хотя, на малом количестве данных тормоза не критичные)
Понятно, спасибо, значит можно забыть про эти дела с вьюшкой точно