¿Debo tener más de una base de datos si tengo aplicaciones en Android, iOS y web (o solo una)?

Estoy en una posición similar y puedo recomendar esta pila y por qué la estoy usando: Postgresql como base de datos, Graphql (Postgraphql) como capa de fondo y React (web) y / o React Native (ios / Android) en la interfaz .

Postgres

Postgres es uno de los sistemas de bases de datos de código abierto más versátiles que incluye características como seguridad a nivel de fila (autenticación basada en el usuario a nivel de fila) e indexación por intervalos (puede tener un índice único en una tupla de dos fechas que permite, por ejemplo, evitar la sobreventa de un sala a nivel de base de datos).

Postgraphql

Postgraphql es una práctica biblioteca Node.JS que utiliza la reflexión para introspectar su esquema de base de datos postgresql y genera automáticamente un esquema ejecutable graphql. Es decir, usted define una nueva tabla o función en su base de datos y postgraphql reconstruirá inmediatamente su esquema y su tabla / función será accesible a través del punto final. No se requiere una sola línea de código. La mejor parte es que viene con autenticación incluida, lo que hace posible restringir fácilmente el acceso a las tablas basado en el error y le permite definir si un determinado usuario puede ejecutar una función o no.

Graphql

Graphql (de Facebook) es un lenguaje de consulta de datos. Herramientas como apollo client hacen posible integrar graphql perfectamente en React y React Native. Para las aplicaciones web de reacción, también es fácil realizar el procesamiento del lado del servidor con una consulta local de Apollo si desea evitar los viajes de ida y vuelta de la red al procesar en el servidor.

React + Redux + Recompose + Graphql + react router v4

Estos cinco juntos te aceleran en el desarrollo de aplicaciones web. También tendrá la oportunidad de reutilizar su código web desde sus aplicaciones. Estoy usando material-ui y grommet como marcos ui que son muy útiles si no te gusta demasiado el diseño.

Reaccionar nativo

Si sabe reaccionar, puede aplicar fácilmente sus conocimientos para reaccionar de forma nativa. Puede reutilizar sus consultas graphql, recomponer componentes de orden superior e incluso incluir sus tiendas redux desde la aplicación web si lo desea. Es muy fácil trabajar con él si solo tiene un paradigma tanto en la web como en la aplicación. React Native evolucionó a lo largo de los años y con herramientas como animadas e interactivas (de wix.com) finalmente es posible lograr transiciones suaves + manejo de gestos. Virtualizedlist permite renderizar listas (noticias, etc.) sin sufrir rendimiento.

No. Solo debe tener una base de datos.
La base de datos / persistencia debe ser atómica y coherente, cuando sus usos usen la aplicación desde PC / Ipad o su SP.
En cualquier desarrollo web estándar, se accede a los datos a través de una capa delegada que puede ser API / capa de lógica de negocios e integra sus aplicaciones / páginas web a esa fachada.

Sin embargo, para el acceso sin conexión en teléfonos inteligentes, etc., ciertas aplicaciones tienen el tipo de aplicación de tiempo de ejecución SQLlite en un dispositivo cliente cuando instalan la aplicación.

Si está desarrollando una aplicación móvil dinámica (significa que los datos se reciben del servidor), entonces no importa qué base de datos use para el backend. Las aplicaciones móviles no pueden manejar (insertar / recuperar) los datos en el servidor directamente. Tendría que crear algunas API para enviar y recuperar datos hacia / desde el servidor. En aplicaciones móviles, Sqlite se usa comúnmente para bases de datos locales (para almacenar valores en el teléfono).

Entonces, cualquier base de datos que use para su sitio web / aplicación web, solo asegúrese de crear algunas API / servicios web para el manejo de datos. Y simplemente invoca desde tu aplicación móvil Android / iOS.

Solo un db para la aplicación. SQLite es bueno para una base de datos en el dispositivo, pero no es su única opción. También podría tener un servidor central con el que habla a través de una API donde almacena todos sus datos.

Suponiendo que la base de datos es del lado del servidor, PostgreSQL es una buena opción (también lo es SQLite). Creo que la confusión proviene del hecho de que puede tener una base de datos en el lado móvil, que a menudo es SQLite.