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

标签 javascript mysql database

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

id |姓名

1 类型1

2 类型2

和一个枚举:

enum Type {
    type1 = 1,
    type2 = 2
}

是否有一种方法可以自动链接两者,例如当数据库为空时,应用程序应该添加这两行,以便应用程序中使用的枚举与数据库中使用的类型相匹配。我想这样做是因为在数据库中, product可能是 furniture 类型(因此 type_idproduct 引用表 furniture 中的类型 TYPE )但我也希望能够执行类似的操作

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

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

最佳答案

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

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

关于javascript - 如何在数据库和应用程序之间共享枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56061671/

相关文章:

mysql - 在 mysql 中存储文件编辑或用户操作

mysql - 如何将 MySQL 触发器异常/失败信息存储到表或变量中

javascript - Fabric.js - canvas.toDatalessJSON 未按预期工作

mysql - 升级到3.9后Wordpress插件出错

javascript - Jquery 不会在第一次点击时隐藏元素

mysql - 子查询中的 GROUP_CONCAT 速度较慢

mysql - 检索每个组中的最后一条记录 - MySQL

Android Room - 带有附加字段的多对多关系

javascript - 语法错误 : Unexpected identifier with axios

Javascript 未捕获类型错误 : Cannot read property 'append' of null in code