Array
(
)

Qual banco de dados utilizar para trabalhar com multiplataformas?

Cleyton Caetano
   - 21 fev 2016

Bom galera, eu estou criando uma aplicação para gerenciamento financeiro pessoal meu, a ideia inicial era trabalhar com ele apenas no meu notbook, mas agora decidi que vou trabalhar com ele no navegador e também com um aplicativo para android, bom ainda não fiz nada igual e tava pensando em usar o SQL server express ou o MySql, mas ainda estou em dúvidas e não sei qual banco utilizar para isso.
Alguém pode me dar uma luz? me indicar um outro banco de dados ou me dizer se um desses dois suprirão minhas necessidades

William (devwilliam)
   - 21 fev 2016

Cleyton alguns detalhe são necessários saber antes de opinar:

1 - Seu site vai rodar em servidor Apache ou IIS?

2 - Seu aplicativo vai ter banco de dados embarcado ou vai consumir dados via requisição AJAX do site?

Observação: Observe que a maioria dos servidores WEB roda em Apache, mas existem algumas hospedagens que oferecem SQL Server por um valor adicional.

Raylan
|
MVP
Pontos: 690
    21 fev 2016

PostgreSQL.

Marcio Araujo
   - 21 fev 2016

Se for algo simples como estou imaginando, o MySQL deve resolver.

Cleyton Caetano
   - 21 fev 2016


Citação:
Cleyton alguns detalhe são necessários saber antes de opinar:

1 - Seu site vai rodar em servidor Apache ou IIS?

2 - Seu aplicativo vai ter banco de dados embarcado ou vai consumir dados via requisição AJAX do site?

Observação: Observe que a maioria dos servidores WEB roda em Apache, mas existem algumas hospedagens que oferecem SQL Server por um valor adicional.

Então o site vai rodar em servidor apache.
Quanto ao aplicativo não sei exatamente como vou consumir o banco de dados.

Cleyton Caetano
   - 21 fev 2016


Citação:
Se for algo simples como estou imaginando, o MySQL deve resolver.

Bem, foi meu primeiro pensamento, mas estou com dificuldades em utilizar na versão 3.x do Python, já que quero utilizar Python pra criar minha aplicação.

David Sylvestre
   - 22 fev 2016


Citação:

Citação:
Se for algo simples como estou imaginando, o MySQL deve resolver.

Bem, foi meu primeiro pensamento, mas estou com dificuldades em utilizar na versão 3.x do Python, já que quero utilizar Python pra criar minha aplicação.


Qual o problema em utilizar a versão 3.x?
A maioria das pessoas que vejo utilizando python acabam optando por postgres, mas é apenas por questão de gosto.

Cleyton Caetano
   - 22 fev 2016


Citação:

Citação:

Citação:
Se for algo simples como estou imaginando, o MySQL deve resolver.

Bem, foi meu primeiro pensamento, mas estou com dificuldades em utilizar na versão 3.x do Python, já que quero utilizar Python pra criar minha aplicação.


Qual o problema em utilizar a versão 3.x?
A maioria das pessoas que vejo utilizando python acabam optando por postgres, mas é apenas por questão de gosto.

O problema é que não encontrei o módulo python-mysqldb compatível com a versão 3.x, na página oficial tem apenas para a versão 2.x

no momento eu estou estudando a biblioteca PyMySQL para se comunicar com o MySql, ainda estudando ela.

Marcio Araujo
   - 22 fev 2016


Citação:

Citação:
Se for algo simples como estou imaginando, o MySQL deve resolver.

Bem, foi meu primeiro pensamento, mas estou com dificuldades em utilizar na versão 3.x do Python, já que quero utilizar Python pra criar minha aplicação.


Sei nada de Python, existe problema de comunicação?

Joel Rodrigues
   - 22 fev 2016

Neste caso, sugiro construir a aplicação em 3 partes:
- API REST: para prover os dados via web (através de HTTP);
- Web app: para consumir a API REST como front-end (pode ser só com AngularJS, por exemplo);
- App mobile: para consumir a API REST como front-end (pode ser híbrido ou nativo, à sua escolha).

Nesse formato, o banco não importa para seus front-ends, pois eles só se comunicarão com o serviço, que por sua vez acessará o banco. Aí sim, neste ponto, você deve considerar principalmente o que sua hospedagem irá suportar, pois qualquer SGBD atenderá praticamente da mesma forma.

Marcio Araujo
   - 22 fev 2016

Já fui bastante do conhecimento que possuo. Boa sorte.

David Sylvestre
   - 23 fev 2016

Com relação ao mysql, no site do sqlAlchemy ele indica alguns drivers.

http://docs.sqlalchemy.org/en/improve_toc/dialects/mysql.html

William (devwilliam)
   - 23 fev 2016


Citação:
Neste caso, sugiro construir a aplicação em 3 partes:
- API REST: para prover os dados via web (através de HTTP);
- Web app: para consumir a API REST como front-end (pode ser só com AngularJS, por exemplo);
- App mobile: para consumir a API REST como front-end (pode ser híbrido ou nativo, à sua escolha).

Nesse formato, o banco não importa para seus front-ends, pois eles só se comunicarão com o serviço, que por sua vez acessará o banco. Aí sim, neste ponto, você deve considerar principalmente o que sua hospedagem irá suportar, pois qualquer SGBD atenderá praticamente da mesma forma.


Sempre gostei muito desse tipo de arquitetura que o Joel mencionou, existe uma ferramenta que ajuda muito na construção de APIs em PHP http://swagger.io/, deixa bem separada as camadas.