Форум программистов, компьютерный форум CyberForum.ru

Клиент-сервер, Django(Python), MySQL и Java (выбор) - Android

Восстановить пароль Регистрация
 
Tilesto
5 / 5 / 0
Регистрация: 14.05.2015
Сообщений: 125
Завершенные тесты: 1
27.10.2016, 15:55     Клиент-сервер, Django(Python), MySQL и Java (выбор) #1
Всем доброго времени суток.
Задача: Собираюсь сделать клиент-серверное приложение. Делаю для себя (получения скилов по ходу), но если получится нормальное стабильное приложение, то можно и .... пойти дальше)
Описание: Приложение что-то типа интернет-магазина (на самом деле нет, но больше всего похоже. Поэтому здесь и далее рассмотрим именно как магазин).
Принцип работы: Клиент заходит в приложение, в нем видит список магазинов. После клика по магазину - список каких-то товаров в нем. Списки хранятся на удаленной БД. При клике на товар, открыватся активити с описанием этого товара, ценой и т.д.. Это описание в той же БД в другой таблице. Также в приложении есть регистрация, причем два вида зареганных юзеров - посетитель, администратор. Доступна система подписок пользователей, аналогично ленте ВК. Обращения к БД в основном только для чтения. В дальнейшем возможно добавить систему комментариев, ЛС и т.д., но это уже не в скором будущем.

Что надумал: Приблизительный выбор сделал таким:
Приложение - нативное
База данных - MySQL
Среда разработки - Android Studio
Таблицы в БД - магазины, товары, юзеры, админы

Что надо то?
Так как напрямую андроид не подключишь к бд, требуется серверный уровень и, следовательно, серверный язык. Также способ передачи. Отсюда вопросы:
Обязательно ли писать серверную часть на PHP?
Возможно ли на сервере использовать Django+Python?
Данные передавать через JSON или есть еще варианты (кроме xml)?
Нужно ли разносить админов и юзеров по разным таблицам, или вовсе необязательно?
Клиент зашел, увидел список магазинов, список товаров, щелкнул по товарам. Чтобы каждый раз не обращаться к БД для считывания одних и тех же данных, возможно ли эти считанные данные заносить в локальную БД SQLite, а далее с ними работать до тех пор, пока не поступит информацию от сервера, что в удаленной БД появились изменения?

Навыки программирования есть (начальные). Как бы не проблема написать что-то на незнакомом языке. Но проблема в том, что я не могу выбрать. Прошу помощи с выбором, для того, чтобы начать работать в нужном направлении, и зря не тратить время. Например, если сейчас буду учить PostgreSQL, то после долгих часов мозгомучений окажется, что я сделал это зря, так как с заданными требованиями справился бы и MySQL. Может есть готовые решения/движки? Буду рад любой помощи, именно выбора инструментов, а не самой реализации (не прошу рассказать что такое активити, зачем нужны базы данных, как реализовать класс и т.д. и т.п.)

Еще раз общие черты приложения:
- Нативное на Android
- Работа с удаленной базой данных
- Данные из базы в основном для чтения. Количество юзеров ~1-5к (в начале)
- Данные берутся большим куском (несколько товаров в магазине и т.д.)
- Эти данные: список магазинов - список товаров - описание товаров
- Товары и их описания заносят в БД админы магазинов
- У товаров есть фото, которые тоже хранятся на сервере (ссылки в БД)

Заранее спасибо (хотя бы за то, что прочитали до конца))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2016, 15:55     Клиент-сервер, Django(Python), MySQL и Java (выбор)
Посмотрите здесь:

Android Сервер и клиент
клиент-сервер Android
клиент-сервер Android
Android Клиент -android, сервер -java app
Как сделать API на сайте (python+django) для Android приложения? Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Паблито
не спать!
1802 / 1536 / 477
Регистрация: 12.05.2014
Сообщений: 5,590
Завершенные тесты: 1
27.10.2016, 16:03     Клиент-сервер, Django(Python), MySQL и Java (выбор) #2
Цитата Сообщение от Tilesto Посмотреть сообщение
Обязательно ли писать серверную часть на PHP?
Возможно ли на сервере использовать Django+Python?
вообще без разницы что там на сервере
Цитата Сообщение от Tilesto Посмотреть сообщение
Данные передавать через JSON или есть еще варианты (кроме xml)?
если не извращаться то json/xml
Цитата Сообщение от Tilesto Посмотреть сообщение
Нужно ли разносить админов и юзеров по разным таблицам, или вовсе необязательно?
это вопрос не в тот раздел
Цитата Сообщение от Tilesto Посмотреть сообщение
Клиент зашел, увидел список магазинов, список товаров, щелкнул по товарам. Чтобы каждый раз не обращаться к БД для считывания одних и тех же данных, возможно ли эти считанные данные заносить в локальную БД SQLite, а далее с ними работать до тех пор, пока не поступит информацию от сервера, что в удаленной БД появились изменения?
да
Цитата Сообщение от Tilesto Посмотреть сообщение
Например, если сейчас буду учить PostgreSQL, то после долгих часов мозгомучений окажется, что я сделал это зря, так как с заданными требованиями справился бы и MySQL. Может есть готовые решения/движки? Буду рад любой помощи, именно выбора инструментов, а не самой реализации
почему бы это тоже не спросить в профильном разделе, бд?
Tilesto
5 / 5 / 0
Регистрация: 14.05.2015
Сообщений: 125
Завершенные тесты: 1
27.10.2016, 16:18  [ТС]     Клиент-сервер, Django(Python), MySQL и Java (выбор) #3
Паблито, пардон, решил просто не плодить кучу тем, а спросить в одной)
Паблито
27.10.2016, 16:25
  #4

Не по теме:

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

Azdeman
Модератор
 Аватар для Azdeman
1503 / 1053 / 278
Регистрация: 12.01.2011
Сообщений: 4,306
27.10.2016, 16:36     Клиент-сервер, Django(Python), MySQL и Java (выбор) #5
Цитата Сообщение от Tilesto Посмотреть сообщение
Нужно ли разносить админов и юзеров по разным таблицам, или вовсе необязательно?
Не обязательно , может быть в таблице user определенный столбец в котором указано его ранг, из таблицы rang например. Связь 1 к 1.
Таблица Rang
id | range |
1***user
2***admin
Таблица user
id | name | range
1 *** Azdeman ***1 // user
2 *** User *******2 // admin
3 *** User111 ****1 // user
Как то так можно сделать...
Tilesto
5 / 5 / 0
Регистрация: 14.05.2015
Сообщений: 125
Завершенные тесты: 1
27.10.2016, 16:44  [ТС]     Клиент-сервер, Django(Python), MySQL и Java (выбор) #6
Azdeman, О_о а это ... корректно? Я думал просто создать столбец: 1-админ, null-юзер. Но так было бы слишком много null зачений в таблице. Поэтому 1-юзер, 2-админ было бы неплохо. А тут делать целую таблицу Оо Я просто не знаю хорошо это или плохо, плодить много таблиц, сколько времени/ресурсов тратится БД на ту или иную операцию и т.д.. Ну хотя если углубляться, то это уже мне точно в другой раздел)

А, хотя Вы написали это же. В смысле первую таблицу можно не делать в БД, а просто "на листочке" записать)
Azdeman
Модератор
 Аватар для Azdeman
1503 / 1053 / 278
Регистрация: 12.01.2011
Сообщений: 4,306
27.10.2016, 17:09     Клиент-сервер, Django(Python), MySQL и Java (выбор) #7
Цитата Сообщение от Tilesto Посмотреть сообщение
Я просто не знаю хорошо это или плохо, плодить много таблиц,
Много ? таблица range, user ?
Цитата Сообщение от Tilesto Посмотреть сообщение
сколько времени/ресурсов тратится БД на ту или иную операцию и т.д..
Это уже нужно смотреть тесты каждой бд , в интернете есть. Ну как правило , 1 бд выигрывает в скорости обновление данных , а другая в выборке к примеру. И соответственно нужно опираться на то , какие операции будет выполнять ваше приложение. Для интернет магазинов, блогов , каких то сервисов MySQL годный.
Alexvp
107 / 71 / 8
Регистрация: 03.08.2014
Сообщений: 344
27.10.2016, 19:21     Клиент-сервер, Django(Python), MySQL и Java (выбор) #8
Цитата Сообщение от Azdeman Посмотреть сообщение
Не обязательно
Лучше разнести. Я всегда разношу.
Но Паблито прав, серверную часть стоит обсуждать в другом разделе.
Azdeman
Модератор
 Аватар для Azdeman
1503 / 1053 / 278
Регистрация: 12.01.2011
Сообщений: 4,306
27.10.2016, 19:31     Клиент-сервер, Django(Python), MySQL и Java (выбор) #9
Цитата Сообщение от Alexvp Посмотреть сообщение
Лучше разнести. Я всегда разношу.
чем лучше?
Tilesto
5 / 5 / 0
Регистрация: 14.05.2015
Сообщений: 125
Завершенные тесты: 1
27.10.2016, 19:57  [ТС]     Клиент-сервер, Django(Python), MySQL и Java (выбор) #10
Alexvp, присоединяюсь к вопросу Azdeman, чем лучше-то? Админ это тоже юзер, просто с дополнительными возможностями, и стоит ли из-за этого выносить его в другую таблицу, не знаю(
Alexvp
107 / 71 / 8
Регистрация: 03.08.2014
Сообщений: 344
27.10.2016, 20:02     Клиент-сервер, Django(Python), MySQL и Java (выбор) #11
Ну коль тут решили обсуждать, то скажу:
1. В интернет-магазине админ (или другой сотрудник компании) не юзер (покупатель). У них совершенно разные цели и задачи, поэтому таблицы могут и должны быть разными.
2. С т.з. безопасности. Чтобы хакеру под видом пользователя сложнее было получить права админа.
_Night_Scream_
51 / 51 / 6
Регистрация: 08.08.2013
Сообщений: 485
28.10.2016, 14:48     Клиент-сервер, Django(Python), MySQL и Java (выбор) #12
А что разве JDBC не работает под андроид?
Просто заявили что прослойка обязательна...
Tilesto
5 / 5 / 0
Регистрация: 14.05.2015
Сообщений: 125
Завершенные тесты: 1
28.10.2016, 21:00  [ТС]     Клиент-сервер, Django(Python), MySQL и Java (выбор) #13
_Night_Scream_, прошу прощения. Просто я со своих начальных знаний, со статей в интернет пришел к такому выводу, что надо обязательно делать трех-звенную архитектуру. А о JDBC даже не слышал, пошел гуглить
_Night_Scream_
51 / 51 / 6
Регистрация: 08.08.2013
Сообщений: 485
28.10.2016, 21:02     Клиент-сервер, Django(Python), MySQL и Java (выбор) #14
Tilesto, вы всё грамотно расписали и в этом правы, я бы низачто не сделал через JDBC напрямую, просто надо знать что есть такое.
Alexvp
107 / 71 / 8
Регистрация: 03.08.2014
Сообщений: 344
28.10.2016, 21:03     Клиент-сервер, Django(Python), MySQL и Java (выбор) #15
Цитата Сообщение от _Night_Scream_ Посмотреть сообщение
А что разве JDBC не работает под андроид?
Если не интересует безопасность сервера, то можно.
Чтобы дважды не вставать
https://habrahabr.ru/post/206790/
Tilesto
5 / 5 / 0
Регистрация: 14.05.2015
Сообщений: 125
Завершенные тесты: 1
01.11.2016, 21:03  [ТС]     Клиент-сервер, Django(Python), MySQL и Java (выбор) #16
_Night_Scream_, Alexvp, спасибо за ответы) Погуглил/почитал, лучше буду делать через "посредника". А так, к сведению JDBC принял)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2016, 21:04     Клиент-сервер, Django(Python), MySQL и Java (выбор)
Еще ссылки по теме:

Клиент-Сервер Android
Android Клиент-сервер
Android Клиент и сервер

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
_Night_Scream_
51 / 51 / 6
Регистрация: 08.08.2013
Сообщений: 485
01.11.2016, 21:04     Клиент-сервер, Django(Python), MySQL и Java (выбор) #17
Tilesto, это правильно.
Yandex
Объявления
01.11.2016, 21:04     Клиент-сервер, Django(Python), MySQL и Java (выбор)
Ответ Создать тему
Опции темы

Текущее время: 00:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru