私はFirebaseを使用してNoSQLデータベースを作成していますが、私はSQL思想家であり、FirebaseクエリとNoSQLデータ構造に関するアドバイスが必要です。NoSQL Firebaseとクエリでフィールドのサブセットを選択するデータ構造
Ionic 2(AngularJS 2)を使用してモバイルアプリケーション用にいくつかの実験を行っていますが、私の懸念事項は、テーブルのスピード(ユーザー時間)と正しい構造に関するものです。
私は、ユーザーが作ったとユーザーがグループの一部である可能性があり、今私は私が持っているもの、このスキーマにUsers : {
Id : {
Name: string
Picture: base64 56x56 pixels (image)
Addresses : {}
Groups : {
Worker: boolean
Student: boolean
}
}
}
Groups : {
Worker : {
Desc: string
Members : {
Userid: boolean
}
}
Student : {
Desc: string
Members : {
Userid: boolean
}
}
}
Made : {
Id : {
Name: string
Thumb: base64 56x56 pixels (image)
Desc: string
User: userid
Images: base64 dimensions could vary
}
}
を作っFirebaseウェブサイトからの脱正規化を、以下のもののリストを持っているアプリで
するには、ユーザーが作ったもののリストを表示することです。名前やサムイメージのような情報はほとんどありません。クリックすると、他の情報とともに説明が開きます。
今、私はリストを取得するために次のコードを使用している場合、それはすべての情報を私に返しますが、初めに、私は名前だけと親指(または他の何か)が必要
return firebase.database().ref('/made/' + madeId)
.once('value').then(function(snapshot) {
var username = snapshot.val().username;
// ...
});
だから、どのような方法があります(?):
SELECT name, thumb FROM Table_Made
私は各クエリに必要なフィールドを取得するには?または
名前と画像のみの別のテーブルを持っている方が良いですか?
親指と画像の両方を持つことをお勧めしますか?親指が一般に画像よりも小さいので、jsonをスピードアップするために。
Firebase docを見ると、10MB未満のイメージは、base64として文書に保存され、保存されている場合は大きくなるようです。それについてあなたのアイデアは何ですか?
Firebaseデータベースでノードのサイズが10MBに制限されていても、そのサイズまでイメージをデータベースに保存する必要はありません。構造を照会しないユーザが生成したデータは、Firebase Storageに効率的に保存/提供できます。 –
1ポストbtwごとに1つの質問に自分自身を制限します。それ以外の場合は、すべての回答を1つにするのは難しいです。 –