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

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

新規登録して質問してみよう
ただいま回答率
85.48%
NoSQL

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

データベース

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

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

Q&A

解決済

2回答

1707閲覧

個人開発のデータベースの選択について

maskmelon

総合スコア63

NoSQL

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

データベース

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

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

0グッド

0クリップ

投稿2020/10/23 17:54

編集2020/10/23 17:58

個人開発でアプリを作っているのですが、データベースの選択について悩んでいます。

アプリの機能は以下の通りです。

①ユーザーはアプリ内で曲をプレイリストに追加、削除できる。
②フォロー関係にあるユーザーのプレイリストと自分のプレイリストを比較して共通の曲をピックアップする。

曲は外部APIからデータを取得するので、IDのみを保存することを考えています。

プレイリストに保存しているIDから曲データを取ってくる処理などをサーバー側で行いたいので、firestoreは選択肢から外しました。また、テーブルが一つしかなくtracksとfriendsにデータを追加していく形なので、NoSQLのほうが適しているのではないかと考えています。

優先順位としてはまず費用を安く抑えられて、その次に処理が速いものを探しています。

プロトタイプの制作ではMongoDB Atlasを使っていたのですが、無料枠が5GBまでしかなく、有償プランが60ドルからということ、また東京リージョンがないので速度面で不安があります。

AWSのDynamoDBは無料枠の容量が多く、使用量に応じてスケールしていくようなので気になっているのですが、キーバリュー型だと②の処理をうまくできるのか分からず迷っています。

上に挙げたデータベース以外でも構わないので、私ならこれを選ぶというような意見を頂けるとありがたいです。

よろしくお願いします。

js

1const userSchema = new mongoose.Schema({ 2 uid: { 3 type: String, 4 required: true, 5 unique: true, 6 }, 7 userName: { 8 type: String, 9 required: true, 10 }, 11 displayName: { 12 type: String, 13 required: true, 14 }, 15 profileImgUrl: { 16 type: String, 17 required: true, 18 }, 19 tracks: [ 20 { 21 id: { 22 type: String, 23 required: true, 24 }, 25 }, 26 ], 27 friends: [ 28 { 29 uid: { 30 type: String, 31 required: true, 32 }, 33 }, 34 ], 35});

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

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

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

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

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

gentaro

2020/10/23 17:58

「無料枠が5GBまでしかなく」ってのを懸念材料に挙げるなら、どの程度の容量を使う予定なのか(ユーザー数がどれぐらいになり、ユーザー単位の容量がどれぐらいの予定なのか)とか、規模感を提示しないと答えにくいと思いますけど。
guest

回答2

0

ベストアンサー

nodejsを使うという事と金額重視という二点考慮すると最安のVPSが良さそうですね。
調べてみたところこのはというサービスの一番ショボイやつがしても最安で月500円ちょいで借りられるようです。現時点では他のVPSと比較しても最安っぽい。
DBはmysql(mariadb)postgresqlが情報検索し易いのでおすすめですが、設計がNoSQLに最適化済みだとか既にmongodbを利用して開発しているのならmongodbをインストールして使えばいいでしょう。
動作させてみて重いようならスペックの高いのを借り直してシステム移行しましょう。

投稿2020/10/23 19:54

hentaiman

総合スコア6421

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

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

maskmelon

2020/10/25 06:26

マネージドサービスに頼るより自分でVPS借りるほうが安く済むんですね。 参考になりました。回答くださりありがとうございました。
hentaiman

2020/10/25 06:35

費用重視なら、自力で構築出来るならVPSが一番ですね。 稼働率重視ならawsなどのクラウドやpaasですね。それらのサーバーはまず落ちません。 VPSは単純にホスティング側の都合によるサーバーのリプレイスでダウンします。
guest

0

DBは専門外なのでちゃんとしたお答えはできませんが、入れるレコード数や時間あたりの参照数や更新数が大き影響すると思いますよ。小規模で良ければSqlite3などで良いのではないでしょうか。

投稿2020/10/23 18:42

aachyee

総合スコア114

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

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

maskmelon

2020/10/25 06:27

参考になりました。回答くださりありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問