それが質問に最適なタイトルかどうかわからない...誰かが私のために名前を変更できるかもしれませんか?
私の質問は、Redis用のc#ServiceStackラッパーでのデータの読み取りと結合のパフォーマンスと、呼び出しが内部でどのように機能するかに関するものです。
最終結果が得られると期待される2つのシナリオについて説明します。1つのシナリオでは、カテゴリIDのリストがトランザクションに添付されているため、カテゴリを個別に保存できます。
質問:私の最終目標は、カテゴリ「食品」を持つすべてのトランザクションを取得することです。
私は、明快さが私の理解に役立つ他の点を数えようとしました。10,000のトランザクションがあり、各トランザクションには平均3つのカテゴリがあると考えてください。
注: ServiceStack.Net Redisには関連する質問があります:関連オブジェクトと関連オブジェクトIDの保存では、効率については説明されていません。
例A
public class Transaction
{
public List<string> CategoryIds;
}
例B
public class Transaction
{
public List<string> CategoryNames;
}
コード
var transactionClient = redisClient.GetTypedClient<Transaction>();
//1. is this inefficient returning all transactions?
// is there any filtering available at this part?
var allTransactions = transactionClient.GetAll();
//2. In the case of Example A where the categories are stored as id's
// how would I map the categories to a transaction?
// maybe I have a List that has a container with the Transaction associated with a
// list of Categories, however this seems inefficient as I would have to loop
// through all transactions make a call to get their Categories and then
// populate the container datatype.
//3. If we are taking Example B how can I efficiently just retrieve the transactions
// where they have a category of food.