А как вообще связаны JSON и SQL?
JSON - иерархический формат данных.
SQL - язык общения с базой, которая в виде таблиц, каждая из которых по сути линейный список ключ-значение.
Вам нужно данные перевести из одного формата в другой, тем самым поменяв их структуру. То есть не просто тупо скопировать, чтобы оно само всё там съело, а приложить усилия, понять логику данных как в JSON, так и в базе данных, и понять, как и что переводить, может быть даже что-то отбросить или преобразовать.
Про ФБ не скажу.
Меня нет на ФБ и никогда не будет. Про него уже все песни спеты.
Но в том же гугле пишут, что на индексацию влияют лайки.
Так что лайкатесь, ждите (если недавно разместились), и надейтесь на снисхождение гугла.
А вообще любая поисковая система - загадка. Они же не публикуют свои алгоритмы. И даже если закономерность удастся нащупать, то это не надолго.
Гугл даже не полностью индексирует свои собственные сервисы. Например, расширения для хрома. Я как-то пытался найти по точному уникальному названию - нельзя. Поиск по магазину расширений тоже не дал результатов. Тем не менее, зная ссылку можно было спокойно зайти, скачать, подписаться, никаких проблем, кроме поиска. Через полгода только заиндексировалось (тоже не ясно, почему).
Короче, общая тенденция такая, что всякие хитрости в продвижении перестают работать, а по-человечески хороший контент, сделанный с душой, идёт вверх. Конечно, сейчас это не совсем так, но я сказал о тенденции, алгоритмы совершенствуются, и направленность у них именно вот такая.
Алгоритм на самом деле простой известный.
1. Токенизация - выделение лексем, скобок, операций и т.д. - это вы делаете через рекэеспы.
2. Построение и обход дерева, или вариант попроще - сортировка в том порядке, в котором выражение будет вычисляться. Алгоритм уже изобретен до нас - RPN. Так что ничего нового. Но я не представляю, как здесь помогут регулярки.
3. Собственно подсчёт - почти линейное прохождение по готовому массиву и вычисление.
Именно так я и делал примерно 5 часов подряд, пока не вышел тот скрипт, и всё время не переставал думать: а может быть можно как-то попроще?
То есть по сути вы решаете задачу развертывания. Думаю, в этом случае не всё так просто. Ведь у пользователя может быть свой профиль, со своим блекджеком набором расширений. Кроме того, расширения обновляются, а это значит нужны именно подписки (хотя здесь спорный момент).
И с учетом того, что основных (полезных) расширений не много (а если ставить больше, то всё начнёт тормозить), можно ограничиться кнопками подписки на пяток популярных расширений. Это либо ссылки на странички расширений, либо навернка как-то можно сделать 5 кнопок на одной страничке.
Там не только приоритет. Отдельная история с унарными операторами:
1 + (-1)
Я с минусом так и не справился.
А ещё есть вызовы функций типа sin(x) - вот это удалось реализовать, но правда мне нужна была только одна специфическая функция. Отсюда важный пункт в фиче-листе - добавление кастомных функций.
остаётся вопрос, с чего начать и как дальше двигаться.
В соседнем ответе предложен алгоритм без дерева, при котором элементы сразу сортируются в том порядке, в котором будут вычисляться, и располагаются линейно в массиве.