首页 > 解决方案 > 如何在数据库和应用程序之间共享枚举?

问题描述

如何在网站应用程序和数据库之间共享枚举?例如,如果我有这样的TYPE表:

编号 | 姓名

1类型1

2型2

和一个枚举:

enum Type {
    type1 = 1,
    type2 = 2
}

有没有办法自动链接两者,例如当数据库为空时,应用程序应该添加这两行,以便应用程序中使用的枚举与数据库中使用的类型相匹配。我想这样做是因为在数据库中, aproduct可能是类型furniture(所以引用的类型是表中type_id的类型)但我也希望能够做类似的事情productfurnitureTYPE

if (type === Type.furniture) {
    // ...
}

直接来自应用程序逻辑(例如根据类型更改前端)。这是一个很常见的问题,那么您将如何管理它?除了手动确保两者匹配之外,还有其他方法吗?

标签: javascriptmysqldatabase

解决方案


你在使用某种 ORM 吗?如果是,是代码优先方法还是数据库优先方法?

我知道你可以通过使用 C# + EFcore 来做类似的事情。您必须使用模型构建器的 HasData() 方法。实现您的目标的工作流程是:获取枚举的所有成员并用它们填充您的数据库表。如果您不使用 EFcore 和 C#,我想您可以通过找到适当的 ORM 播种方法和提取枚举所有成员的适当方法来解决您的问题。对于问题的第二部分,您需要直接编辑存储枚举的文件。


推荐阅读