ちょっと、 私はdb(mysql)を持つサーバー側のアプリケーションを持っていますが、私のDBの現在のスキーマのために、ユーザのデータを操作するために(例えば、彼のプロフィールdbテーブルの編集など)、彼のユーザ名でIDを取得します。簡単なユーザー名とユーザーIDのマッピングをキャッシングしてデータベースを簡単にする
私は、特定のusername to userid
マッピングの要求を処理するときに、結果を辞書に、または指定されたユーザー名の最初の文字の専用辞書にキャッシュする単純なキャッシュクラスを作成することを考えていました。 (私は辞書が爆発したくないので、辞書がいっぱいになるまでそれだけで助けることができる
public class UsernameToIdCache
{
public int GetUserIdFromUsername(string username)
{
if (string.IsNullOrEmpty(username)) return -1;
var targetDictionary = _cacheDictionaries[username[0]];
int id;
if (targetDictionary.TryGetValue(username,out id))
{
return id;
}
else
{
id = RunSqlQuery("select id from users where username ='" + username + "'");
if (IsDictionaryNotFull(targetDictionary))
{
targetDictionary.Add(username,id);
return id;
}
}
}
}
をIsDictionaryNotFull(Dictionary<int,string>)
方法は、メモリ管理のために使用されます。ここでは
は私が考えていたものの一例です)。
あなたはどう思いますか? これは良いdbコーディングの練習ですか?
私はWcf、Mysql、およびCを使用しています。 – programmer