我正在使用Entity Framework Code First来构建我的数据库。我的类别不会经常变化,但可能会在未来发生变化。将类别数据存储在枚举或实际表中是否更好?下面是我实现这两种方法的一个例子:
使用枚举:
public enum Role
{
Administrator, Employee, Developer
}
public class User
{
public int ID {get;set;}
public string Name { get; set; }
public Role Role { get; set; }
}
使用单独的表格:
public class User
{
public int ID { get; set; }
public string Name { get; set; }
public int RoleID { get; set; } // Foreign key to Role table
public virtual Role Role { get; set; } // Navigation property for Role
}
public class Role
{
public int ID { get; set; }
public string RoleName { get; set; }
}
答案 0 :(得分:1)
如果数据可以更改使用实际表 - 我已经看到更改枚举,它不是很漂亮。您将拥有类似&#34的代码;首先尝试" "先试试第二......" - 例如,请参阅Microsoft office interop enums;)
答案 1 :(得分:1)
我对此的看法是使用第二种方法(单独的表),因为它支持关注点分离(数据与实现分开)。 但是,如果您可能没有以任何方式添加更多角色,那么您使用枚举的第一种方法应该没问题。