次のようなperson_skillsというテーブルがあります。
person_id、skill_type_id、base_score、misc_score
スキルタイプのID、名前を含むルックアップテーブルがあります。
ここで注意が必要なのは、person_id、skill_type_idの複合キーがあることです。人は5つのスキルを持っている可能性があるため、このテーブルには多くのエントリがあります。
現在、私はそのようなクラスを持っています:
public class skill
{
int BaseScore {get;set;}
int MiscScore {get;set;}
}
次に、以下のようにこれらすべてを含むクラスがあります。
public class person_skills
{
int person_id {get;set;}
IDictionary<skill_type, skill> skills {get;set;}
}
これがこの関係を処理するための最良の方法であるかどうかはわかりません。最終的には、人々にスキルへのリンクを提供できるようにする必要があります。多くのスキルに対して1人の人間がいます。
auto incrememnt id列を入れて、それをPKとして使用することを考えていましたが、理想的ではないようです。必要に応じてモデルとDBを変更できますが、これはページのajax部分で使用されるため、スキルを変更してからデータベースに更新できる必要があります。