DanyBoo
@DanyBoo
https://saity74.ru

Разработка портала, реализация собственного API для работы с БД?

Всем привет.


В предстоящие несколько месяцев мне предстоит разработать портал по недвижимости. Он будет состоять из нескольких сайтов с единой базой объектов, тут возникла идея, что если вынести эту базу отдельно от баз CMS и сделать небольшой API для запросов к серверу базы как AJAX так и просто от сервера по HTTP. Поскольку опыта создания такого рода проектов у меня нет хотелось бы обсудить это с теми у кого он есть и узнать о каких-либо узких местах и трудностях заранее, так сказать на этапе проектирования. И так вопрос, даже вопросы.


Что касается ПО то все стандартно. php 5.2 + mysql + apache2 + nginx + memcached на debian.

Железка: Intel Cored 2 Duo 2660МГц 2Гб DDR2 1ТБ на винте.

  1. Оправдано такое решение (выносить базу) добавлю еще то что возможно в последствии нужно будет организовать доступ к базе сторонних организаций (их сайтов точнее)
  2. может быть не стоит использовать MySQL?
  3. есть ли какие-либо сложности в защите такой базы и соединений к ней?



Всем кто откликнется спасибо, буду рад любым советам и размышлением на этот счет.
  • Вопрос задан
  • 3203 просмотра
Пригласить эксперта
Ответы на вопрос 4
sajgak
@sajgak
1. Для организации стороннего доступа — это очень удобное решение. + при хороших нагрузках у вас не будет никаких проблем при выносе базы на отдельную железку.

2. Какая предпологается структура? (Работаю уже с год с MongoDB, почти весь проект при должной организации бд можно перенести на него и получить выигрыш в производительности). Если интересно — подробности в личку.

3. Если на 1 сервере — отдельный пользователь для изменения + 1 с правами на select для сторонних пользователей. И никаких проблем. Если разнести базу и логику: фаервол с доступом с 1 ип на 1 порт. Обработка сторонних запросов — так же с этого ип. (тобишь без прямого доступа к самой бд)
Ответ написан
@glebkk
Как вариант вместо MySQL можно использовать CouchDB, из плюсов, например, у него уже есть REST API для ваших API запросов, только с безопасностью (аутентификация, уровни доступа) придется поработать.
Ответ написан
zizop
@zizop
1. Да, если планируется сторонний доступ. Потом будет проще.
2. Ну только если вы гонитесь за модой типа «MySQL уже не торт». А так есть замечательная штука — HandlerSocket. Юзайте его, делайте сразу денормализованную БД, запросы по PK, никаких jOINов и будет вам счастье)
3. Ну единственная сложность в том, что защиту надо писать. HS принимает запросы без проверки доступа, поэтому нужно разрешать их только с локальной машины. А всю систему защиты реализовывать в php.

P.S. Я бы посоветовал вам использовать REST архитектуру для доступа к БД в php.
Ответ написан
AmdY
@AmdY
PHP и прочие вебштучки
да, вынос в отдельный сервис это очень даже здорово и MVC-шно. у меня по данной теме есть ссылка сохранённа tutorials.jenkov.com/soa/soa.html покопайся на сайте.
тоесть ты будешь делать полноценный сайт-сервис. который авторизирует, принимает запрос, выбирает данные из хранилища и выплёвывает их.
гонять данные удобно в json
по поводу выборок есть два варианта — делать именованные query=SelectCategory¶ms[id]=2 либо делать свой язык запросов, типа developer.yahoo.com/yql/
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы