关于编码与SO相似的徽章系统已经有很多问题了,我的问题是不同的。假设我有一个网页系统,徽章/成就,与成就键(ID),用户ID和任何其他数据一起存储在数据库中。成就/徽章的体系结构
我的简单问题是,我应该在哪里存储徽章ID?每个成绩我都有一门课,所有的数据和方法都可以用来测试是否已经获得。我想我可能有几十或几百个点。我希望ID只能用于硬编码一次,并且在一个简洁的地方,所以我不会意外更改它们或混合它们。
我很难在类代码它们,就像
public int Key { get { return 15; } } // I'm calling it Key, not ID
但如果我拆我的多个文件中的成就,我不希望有奔波寻找最关键的时候我添加一个新的一个和冒着一个错误。
我可以把他们在其他类中的一些字典...
public class AchievementSet
{
private Dictionary<int, Achievement> _achievements;
public AchievementSet()
{
_achievements = new Dictionary<int, Achievement>()
{
{ 1, new SomethingAchievement() }
};
}
}
但现在的类本身不知道自己的密钥,并且需要(或不是吗?)如果我通过它进入构造函数现在我冒着数字不匹配的风险。
有什么建议吗?
为什么不将徽章存储在数据库中? –
我想,因为每个徽章都有相关的代码,您仍然需要将这段代码与徽章ID进行匹配。所以它基本上不会解决任何问题。 – guillaume31