Database 什么样的数据应该保存在连接的表中?
我有一个关于处理数据库中的数据的问题。 我有这样的桌子: 问题是,我应该在它的Name属性的Database 什么样的数据应该保存在连接的表中?,database,entity-framework,data-binding,relational-database,Database,Entity Framework,Data Binding,Relational Database,我有一个关于处理数据库中的数据的问题。 我有这样的桌子: 问题是,我应该在它的Name属性的Status表中保存什么样的数据? 我有两种可能: 保留字符串,例如:“正常”、“雇佣”、“禁止”、“版主”等 在那里保留int,对应于我的项目中的Enum类型,还包含所有那些“正常”、“雇佣”等 有什么规定吗?我在一个项目中看到了第二个选项(enum),作者证明了他的选择是正确的,事实上,他更容易将这些int解析为托管代码,只需使用以下行: (StatusEnum)statusInt; 在我看来,第
Status
表中保存什么样的数据?
我有两种可能:
字符串
,例如:“正常”、“雇佣”、“禁止”、“版主”等int
,对应于我的项目中的Enum
类型,还包含所有那些“正常”、“雇佣”等enum
),作者证明了他的选择是正确的,事实上,他更容易将这些int解析为托管代码,只需使用以下行:
(StatusEnum)statusInt;
在我看来,第一个选项(strings
)更专业,因为数据库更独立。但实际上,我不知道如何争论,因为这只会给我带来一个问题:我必须用两行(Enum.TryParse…
)将这些字符串解析为托管Enum type
)
谁能告诉我他们的意见吗?如果你选择enum,你不需要特别的表格。您只需在
User
表中使用Status整数值,并将其直接映射到EF designer中的enum。如果您的状态
是一个实体,则相关表是有意义的。您是否可以在运行时对其进行更改、添加或删除?如果是,则将其设置为具有字符串名称的表。如果否,则将其作为User
表中的枚举字段。查看此处:。我个人推荐enum,因为它可以保护您不受打字错误的影响,并且需要更少的磁盘空间。