Когда используешь что-то вроде phpMyAdmin для работы с данными в базе, всегда неудобно что связанное поле отображает просто число из другой таблицы, вместо конкретных данных, которые там прячутся.
Например, в поле `country_id` стоят числа, а не название страны. Приходится прыгать из таблицы в таблицу. Или писать отдельный sql, что бывает зачастую неудобно, если надо по быстрому. Или с телефона набирать sql запрос не с руки. А если нужно обновить страну из поля `country_id`, то опять прыгать из таблицы в таблицу. Короче — неудобно все это.
Проще показать в формате было-стало:
Было

Стало

Сделать простую настройку для полей базы, чтобы отображать связанные данные из других таблиц. А еще чтобы их можно было обновлять прямо тут же.
Эта задача давно меня мучила, по роду занятия веб-разработкой. Было несколько подходов к снаряду, в результате остановился на самом простом решении, которое только смог придумать. И главное, которым хотелось бы пользоваться самому, а не решать абстрактную проблему абстрактных пользователей.
В результате получился сайт DataIncrement.com
Где:
Таким образом мы получаем отображение таблицы с картинки «Стало», где кроме реального значения поля, через точку с запятой отображается значение поля `country`.`name`. Таким же образом сделана настройка для другого поля `region_id `, которое связано как видно из настройки с полем `region`.`region_id`.

Редактирование данных происходит по двойному клику в ячейке таблицы. Тогда внизу страницы появляется спец. панель где можно изменить значение и отправить данные на изменение.
Кроме редактирования простых полей, в будущем планирую поиск по связанным полям. Например, чтобы изменяя страну, можно было набрать часть имени и нужный id сам предлагался для заполнения. Собственно это стандартная функция подсказок при наборе поискового запроса.
Для настройки поисковых запросов будет использоваться похожий синтаксис, как и для секций
где отличие заключается в том, что:
В данный момент сайт представляет из себя вполне себе рабочий прототип, и может быть без стыда показан в свете. Что собственно и породило данную заметку.
Идей и планов много, однако пока этот проект у меня проходит как хобби, критика принимается как пища к размышлению. Хотя бы для того чтобы я бросил этими глупостями заниматься и начал заниматься другими глупостями.
Заметка написана, как попытка не загромождать главную страницу DI всякими «лендингами» с описанием не понятно чего, но чтобы можно было дать ссылку на описание и принцип работы. К тому же сразу с независимой критикой, из серии — «вам же говорили».
Например, в поле `country_id` стоят числа, а не название страны. Приходится прыгать из таблицы в таблицу. Или писать отдельный sql, что бывает зачастую неудобно, если надо по быстрому. Или с телефона набирать sql запрос не с руки. А если нужно обновить страну из поля `country_id`, то опять прыгать из таблицы в таблицу. Короче — неудобно все это.
Проще показать в формате было-стало:
Было

Стало

Задача
Сделать простую настройку для полей базы, чтобы отображать связанные данные из других таблиц. А еще чтобы их можно было обновлять прямо тут же.
Решение
Эта задача давно меня мучила, по роду занятия веб-разработкой. Было несколько подходов к снаряду, в результате остановился на самом простом решении, которое только смог придумать. И главное, которым хотелось бы пользоваться самому, а не решать абстрактную проблему абстрактных пользователей.
В результате получился сайт DataIncrement.com
Как работает DataIncrement
- Подключаем свою базу данных на DataIncrement, используя host, name, pass, dbname (пароль сохраняется в куках браузера или в сессии, т.е. на сайте не храниться, если что). У вас должен быть пользователь с возможностью подключения с любого хоста.
- Регистрация всех действий происходит через подтверждение по почте. Возможно это спорное решение, но пока так. Поэтому идем в почту и жмем ссылку из письма. Таким образом подтверждаем подключение.
- После этого можно перейти к списку подключенных БД, на главной странце dataincrement.com
- Затем кликаем на подключенную БД — это будет страница со списком всех доступных таблиц.
- Далее нужно перейти на вкладку «Links» (вторая ссылка от названия базы «Пример базы» на картинках «Было-Стало»), где нужно настроить связь между таблицами для отображения связанных данных. С помощью записи не хитрого текста, например:
@link city
country_id = country.country_id
name
region_id = region.region_id
name
Где:
- на первой строке:
@link
— это обозначение секции, аcity
— это имя таблицы - далее обязательно с новой строки и обязательно отступ слева
- начинается описание полей таблицы city, для которых будет настроено отображение, т. е.
country_id = country.country_id — это поле `city`.`country_id` = `country`.`country_id` - далее обязательно с новой строки и более глубоким отступом
- название поля для дополнительного отображения, т. е. `country`.`name`
Таким образом мы получаем отображение таблицы с картинки «Стало», где кроме реального значения поля, через точку с запятой отображается значение поля `country`.`name`. Таким же образом сделана настройка для другого поля `region_id `, которое связано как видно из настройки с полем `region`.`region_id`.

Редактирование
Редактирование данных происходит по двойному клику в ячейке таблицы. Тогда внизу страницы появляется спец. панель где можно изменить значение и отправить данные на изменение.
Кроме редактирования простых полей, в будущем планирую поиск по связанным полям. Например, чтобы изменяя страну, можно было набрать часть имени и нужный id сам предлагался для заполнения. Собственно это стандартная функция подсказок при наборе поискового запроса.
Для настройки поисковых запросов будет использоваться похожий синтаксис, как и для секций
@link
, только с ключевым словом @search
@search city
country_id = country.country_id 10
name $*
где отличие заключается в том, что:
- указывается ограничение возвращаемых строк, через пробел — это цифра 10
country_id = country.country_id 10
- далее указываются поля для отображения, но через пробел, дополнительно указывается поисковый шаблон, где доллар $ — это введенное значение, а звездочка * — означает какие угодно символы.
Сейчас у меня указано $* для поля `country`.`name`, т. е. поиск по имени будет работать по начальным буквам слов в указанном поле.
Шаблон может иметь четыре варианта: $, *$, $*, *$*
Заключение
В данный момент сайт представляет из себя вполне себе рабочий прототип, и может быть без стыда показан в свете. Что собственно и породило данную заметку.
Идей и планов много, однако пока этот проект у меня проходит как хобби, критика принимается как пища к размышлению. Хотя бы для того чтобы я бросил этими глупостями заниматься и начал заниматься другими глупостями.
Заметка написана, как попытка не загромождать главную страницу DI всякими «лендингами» с описанием не понятно чего, но чтобы можно было дать ссылку на описание и принцип работы. К тому же сразу с независимой критикой, из серии — «вам же говорили».