如何在数据库和应用程序之间共享枚举?

时间:2019-05-09 14:27:06

标签: javascript mysql database

如何在网站应用程序和数据库之间共享枚举?例如,如果我有一个TYPE表,如下所示:

id |名称

1种type1

2 type2

和一个枚举:

enum Type {
    type1 = 1,
    type2 = 2
}

可以自动链接两者,例如,当数据库为空时,应用程序应将这两行相加,以便应用程序中使用的枚举与数据库中使用的类型匹配。我想这样做是因为在数据库中,product的类型可能是furniture(因此,type_id中的product引用了furniture类型。表TYPE),但我也想做类似的事情

if (type === Type.furniture) {
    // ...
}
直接从应用程序逻辑中

(例如,根据类型更改前端)。 这是一个非常普遍的问题,那么您将如何处理?除了手动确保两者都匹配之外,还有其他方法吗?

1 个答案:

答案 0 :(得分:0)

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

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