Список стран, ISO и международные данные

При разработке сайтов с международной аудиторией надо не только иметь списки стран и языков, но и учитывать их взаимосвязи, форматы, временные зоны. Я уже не говорю про трудности перевода и силлогизмы которые могут быть неправильно истолкованы публикой (например blue ? голубой). Но для простоты условимся что настала эпоха тотального глобализма […]

Системные таблицы в базах данных

Редко когда приходится делать перечисление всех таблиц, колонок, прав — при разработке это всё делает клиентская программа. Но когда разработка ведётся удалённо и вы не видите разниц в продублированных базах данных в принципе безопасности, то что-бы сдвинуться с мёртвой точки гадания в чём же дело, почему не поступают данные, надо […]

Межтабличный UPDATE

Редко когда, но всё же приходится делать в базе данных одиночные запросы по перемещению существующих данных из одной таблицы в другую. И если с добавлением рядов используя INSERT проблем возникает мало, то с обновлением существующих таблиц у меня возникла трудность. А именно — была старая таблица Invision Powerboard форума, и имелась новая […]

Удаление дубликатов в Mysql

Очень часто всплывает тема поиска дубликатов в таблицах, особенно когда надо установить UNIQUE constraint. Всегда можно обойтись таким запросом.. SELECT login, COUNT(login) AS cnt FROM sys_users GROUP BY login HAVING ( COUNT(login) > 1 ) И теперь..

Введение в Foreign keys

Foreign keys это движущая сила реляционных БД. Выборка по нескольким таблицам по прежнему формируется при помощи JOIN-конструкций, но FK создаёт логические связи между таблицами, понятные человеку. Очень полезно в больших проектах, где уследить за всеми связями нелегко, а такие программки как MySQL Workbench хорошо могут эти связи показать. Создание связей начинается […]

Что такое Sphinx

Sphinx — полнотекстовый поисковик по Mysql и Postgre, отличающийся скоростью от своих конкурентов, представленный на РИТ-2007 Петром Зайцевым. Использовать его имеет смысл только на больших проектах, где объем данных вынуждает уже использовать выделенный сервер. Обычный поиск как известно очень простой и очень медленный (условно 1.2 МБ/сек) .. SELECT * FROM my_table WHERE my_col […]

DB дизайн

Дизайн базы данных дело приятное и также важное при создании новой системы. Под дизайном я подразумеваю: Разбиение  проекта на независимые логические существа данных, т.е. таблицы. Обычно ни клиент ни управляющий проектом не описывают их. Создание структуры таблицы с корректными типами данных. Создание связей между таблицами через Foreign Key , если возможно Создание […]

Что такое Swagger

Swagger UI это небольшая коллекция скриптов для создания интерактивной документации для API веб-приложений с REST протоколом. Очень полезно, если вы пишете приложение которое должно взаимодействовать с внешней системой, а договориться друг с другом в текстовом формате мало. Интерактивность проявляется в том что из документации можно делать HTTP-запросы, а сама документация зависит […]

Авторизация в Google с OAuth 1.0

Google как и Твиттер, предоставляет разработчикам возможность использовать OAuth 1.0 для авторизации пользователя стороннему приложению предоставлению конкретных данных по API, причём поскольку Google не централизованный Facebook и у него много полноценных сервисов типа Youtube и Picasa, то для каждого из них выборка данных своя. В общем эта авторизация (ключевые слова — OpenID, AuthSub, Federated […]

Backend-авторизация в facebook через OAuth 2.0

Facebook Graph API — новая версия программного интерфейса фейсбука где данные пользователя передаются в JSON формате, а список связанных объектов и привилегий значительно понятней (друзья, фото, видео, события, группы, посещения, события и тп. ). Например так выглядит информация обо мне (я чуток урезал). { «id»: «712392972», «name»: «Pov», «first_name»: «Po», «last_name»: «V», «link»: «http://www.facebook.com/pov», […]