Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Прозрачная работа с несколькими базами данных на PHP (https://javascript.ru/forum/server/7857-prozrachnaya-rabota-s-neskolkimi-bazami-dannykh-na-php.html)

PeaceCoder 23.02.2010 16:12

e1f,
Да я уже думал об этом, хотелось бы вообще сделать такой класс, которому пишешь стандартизированный запрос, а класс его переделывает под ту или инную базу и его синтаксис.
Планирую ща следующее. изучить стандарт SQL, внести немного своих фич под свою CMS, а класс, как раз таки, стандартный синтаксис будет конверитровать под тот или иной тип базы данных учитывая фичи CMS.

Планирую сделать так что, например, модуль пользователей использует одну базу, а модуль групп другую, причем на разных типах баз.. а подав единый запрос включающий выборку с одной и другой базы, указав всего лишь модули и их таблицы, получить ответ....

Octane 23.02.2010 16:26

Цитата:

Сообщение от PeaceCoder
свою CMS

Как говорил у нас в Волгограде на семинаре генеральный директор UMI.CMS Сергей Котырев: «Каждый PHP-программист должен написать свою CMS и забросить её». :)

PeaceCoder 23.02.2010 16:40

Цитата:

Сообщение от Octane
Как говорил у нас в Волгограде на семинаре генеральный директор UMI.CMS Сергей Котырев: «Каждый PHP-программист должен написать свою CMS и забросить её

нее. она покруче joomla будет. она гибкая до жути. пиши сайт хоть через левое ухо правой рукой.

Tim 23.02.2010 17:00

PeaceCoder,
Зачем нужно две БД одной CMS? В чём смысл? Так безопаснее? Быстрее? Почему не 5? Сервер железный, пусть работает?

PeaceCoder 23.02.2010 17:16

Цитата:

Сообщение от Tim
Зачем нужно две БД одной CMS? В чём смысл?

ты сталкивался с таким когда модулю надо делать запросы к другой бд от которой зависит текущий результат из нашей бд? вот для этого.

Простой пример. сделано несколько сайтов на разных доменах и базах но с одним сервером..., более банальный пример - сайт альянса в игре. Все сайты кланов хранятся на разных доменах и серверах, но например по "соглашению" можно взять например темы новостей каждого клана и вывести на сайте альянса....
или например, сайт онлайн игры. все ссервера лучше размещать на отдельных серверах и базы соответсвенно... но инфа на главном сайте то должна быть?

Tim 23.02.2010 17:36

Не, мне до такого не додуматься даже. Признаю свою вину, меру, степень, глубину....

x-yuri 24.02.2010 23:45

Цитата:

Сообщение от PeaceCoder
ты сталкивался с таким когда модулю надо делать запросы к другой бд от которой зависит текущий результат из нашей бд? вот для этого.

так есть просто две БД или рассматривается вариант перехода с одной БД на другую?

PeaceCoder 25.02.2010 01:32

Цитата:

Сообщение от x-yuri
так есть просто две БД или рассматривается вариант перехода с одной БД на другую?

то что я описал две. а вообще уже реализовываю кросс-бд запросы. независимо от синтаксиса можно будет делать запросы разных модулей
Пример: есть модуль пользователей с таблицей users, групп с таблицей groups и форум с таблицами topics, forums

Можно будет делать такой запрос
$db->q("SELECT T.*,G.Color,U.Nick
  FROM M_FORUM.topics AS T, M_GROUPS.groups AS G, M_USERS.users AS U 
  WHERE G.UserID=U.id AND T.UserID=U.id");

где M_FORUM, M_GROUPS и M_USERS - названия модулей.
Такой запрос будет действовать не зависимо от того какие базы юзают каждый из модулей и на каком они синтаксисе. При этом об префиксах можно будет вообще забыть. Они будут генерится автоматом =)

x-yuri 25.02.2010 14:36

PeaceCoder в своем стиле... т.е. твоя библиотека автоматически определяет использованный диалект и преобразует в нужный? Или она определяет свой, православный?

p.s. пару сообщений, правда про orm

p.p.s. что меня больше всего смущает, так это то, что ты придумываешь проблему и начинаешь отстаивать ее актуальность. Нет чтобы просто сказать: "Интересно мне, любопытно или что там еще..." ;)

Tim 25.02.2010 15:35

Цитата:

ты придумываешь проблему и начинаешь отстаивать ее актуальность
это из-за универа, без этого навыка диплом не сделать =)


Часовой пояс GMT +3, время: 18:24.