質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
React Native

React Nativeは、ネイティブモバイルアプリ(iOS/Android)を作成できるJavaScriptフレームワークです。Reactと同じ設計のため、宣言的なコンポーネントでリッチなUIを開発することが可能です。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

NoSQL

NoSQL(not only SQL)は、リレーショナルデータベース管理システムとは異なるデータベースシステムを指す言葉です。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

1回答

2954閲覧

スマホ、モバイルアプリ開発でのデータベースについて

nekomaru_kakeru

総合スコア0

React Native

React Nativeは、ネイティブモバイルアプリ(iOS/Android)を作成できるJavaScriptフレームワークです。Reactと同じ設計のため、宣言的なコンポーネントでリッチなUIを開発することが可能です。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

NoSQL

NoSQL(not only SQL)は、リレーショナルデータベース管理システムとは異なるデータベースシステムを指す言葉です。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

2クリップ

投稿2021/11/18 14:32

前提・実現したいこと

プログラミング、DB初心者です。
現在 expo + React Nativeでスマホアプリを開発しています。
サーバ上にあるデータベースに保存したり、そこからデータを読んだりしたいと考えています。
またユーザ認証機能も付けたいと思っています。
個人個人のデータだけでなくユーザごとにデータを共有したいです。

調べたこと

そこでデータベースについて調べていると
①Webサーバを立てて、MySQLなどを利用する方法と
②mBaaS(FirebaseやAWS amplify)を利用してデータベースを利用する方法があることがわかりました。

疑問

  1. データベース移行やデータの保全性を最優先にしたい場合、①を選定すべきでしょうか。

  2. mBaaSで最初構築しデータが多くなってきたら、Webサーバーに移行したいと思いましたが、

あまりそのような資料が見つかりませんでした。後で移行する可能性があるような場合は①を選択すべきでしょうか。

  1. ②のメリットは簡単に構築できること以外にも何かありますでしょうか。

  2. Webアプリケーションとモバイルアプリでのデータベースを利用するプロトコル?に差はあるのでしょうか。

mBaaSのデータベースはスマホアプリに特化していて扱いやすいという記事を見ましたが
それはなぜなのでしょうか。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

Webアプリケーションとモバイルアプリでのデータベースを利用するプロトコル?

WEBからは基本的にSQLで自由にデータを取得します(SQLを組み立てる各種ライブラリを使うにしても)
対して不特定多数が使うネイティブアプリからは直接SQLを発行出来るような作りは絶対にしません、代わりにWEBサーバー用意しAPIを作り、それを通してデータを取得します

mBaaSのデータベースはスマホアプリに特化していて扱いやすいという記事を見ましたが

DBからデータを取得する為のサーバー構築やプログラムを作らなくて良いから、プロバイダー(グーグル等)のドキュメントに従えばセキュリティ等の余計な事考えなくて済むからじゃないですか?ドキュメントにはセキュリティに関する記述もあったと思いますので

WEBとDBを使う開発の経験がある人は余程の素人でも無い限りは当然の如くセキュリティも負荷もレスポンス速度も考慮した作りに出来ますが、それらの経験の無い人が作れば100%ボロクソな穴だらけのシステムになるし、レスポンスも遅く延いてはあっと言う間にサーバーの負荷が高くなり最悪サーバーが落ちます。

データベース移行やデータの保全性を最優先にしたい場合、①を選定すべきでしょうか。

移行はともかく保全が何を意味してるか分かりませんが、
どちらも使えるなら①、敷居が高くてもやる気があるなら①、とりあえず動いて欲しいなら②、セキュリティに不安がある場合でも②(普通は不安だと思いますが)

mBaaSで最初構築しデータが多くなってきたら、Webサーバーに移行したいと思いましたが、

基本的に無理、扱うデータが物凄くシンプルなものなら可能

firebaseの方しか知らないけど質問に書いてあるmysqlはRDBだし、firestoreはNoSQLなので使い方も設計の仕方も全くの別物です
まだmysqlで作ったものの一部をNoSQLに切り出す方が現実的というか、それなら普通にあり得る話

投稿2021/11/18 15:13

hentaiman

総合スコア6389

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nekomaru_kakeru

2021/11/21 08:41

ご回答ありがとうございます。 保全はデータベースシステムがサーバーの負荷などによって落ちてしまいデータがなくなったりしてしまわないかということについてお聞きしました。 Webサーバーを立て、APIを作り、データを更新、削除、追加するのは初心者がやると 障害が起きたりセキュリティ上穴があるシステムになってしまうということがわかりました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問