2013-04-10 3 views
0

Я - веб-разработчик, который движется в создании мобильных приложений (iOS/Android).Правильная архитектура для подключения iOS к базе данных?

Как таковой, я пытаюсь понять, как я должен архивировать мобильное приложение для доступа (публикации/обновления/удаления) данных, хранящихся на центральном сервере.

Для иллюстрации предположим, что я создаю приложение для мобильных приложений (называемое «MyRecipeApp»). Некоторые рецепты, которые я хочу поделиться с другими пользователями рецептов MyRecipeApp, и некоторые рецепты, которые я хочу сохранить лично для себя.

Для обмена рецептами все рецепты (как частные, так и общие) хранятся в централизованной (серверной) базе данных, а MyRecipeApp обращается к этой базе данных для получения этой информации.

Таким образом, у меня есть несколько вопросов:

  1. С MyRecipeApp, как получить доступ к базе данных? Я делаю свою базу данных общедоступной для того, чтобы MyRecipeApp мог разговаривать с базой данных? Если это так, это кажется небезопасным.

  2. Я пытаюсь выполнить SQL-код в MyRecipeApp (например, SELECT * FROM RECIPES WHERE USER = "John Smith") для доступа к базе данных для получения рецептов? Если это так, это кажется небезопасным в том смысле, что кто-то может просто взломать мое мобильное приложение и изменить SQL для получения любой информации.

  3. Вы отправляете пользователям имя пользователя/пароль с каждой выборкой в ​​базу данных? Если да, то как вы шифруете трафик между базой данных и MyRecipeApp.

  4. Что еще я не задумываюсь о том, как мне нужно создавать мобильные приложения?

ответ

1
  1. соединение через API (возможно, успокоительные HTTP API).
  2. Не твердый код SQL. Вместо этого создавайте вызовы API, передавая параметры.
  3. Да, отправляйте информацию аутентификации с каждым запросом и используйте HTTPS или отправляйте имя пользователя и пароль только по первому запросу и получите токен сеанса и используйте его для последующих запросов, но все же используете HTTPS.
  4. Рассмотрите отправку и получение данных в формате JSON.
Смежные вопросы