個人開発でアプリを作っているのですが、データベースの選択について悩んでいます。
アプリの機能は以下の通りです。
①ユーザーはアプリ内で曲をプレイリストに追加、削除できる。
②フォロー関係にあるユーザーのプレイリストと自分のプレイリストを比較して共通の曲をピックアップする。
曲は外部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});
回答2件
あなたの回答
tips
プレビュー