javascript - 如何在数据库和应用程序之间共享枚举?
问题描述
如何在网站应用程序和数据库之间共享枚举?例如,如果我有这样的TYPE
表:
编号 | 姓名
1类型1
2型2
和一个枚举:
enum Type {
type1 = 1,
type2 = 2
}
有没有办法自动链接两者,例如当数据库为空时,应用程序应该添加这两行,以便应用程序中使用的枚举与数据库中使用的类型相匹配。我想这样做是因为在数据库中, aproduct
可能是类型furniture
(所以引用的类型是表中type_id
的类型)但我也希望能够做类似的事情product
furniture
TYPE
if (type === Type.furniture) {
// ...
}
直接来自应用程序逻辑(例如根据类型更改前端)。这是一个很常见的问题,那么您将如何管理它?除了手动确保两者匹配之外,还有其他方法吗?
解决方案
你在使用某种 ORM 吗?如果是,是代码优先方法还是数据库优先方法?
我知道你可以通过使用 C# + EFcore 来做类似的事情。您必须使用模型构建器的 HasData() 方法。实现您的目标的工作流程是:获取枚举的所有成员并用它们填充您的数据库表。如果您不使用 EFcore 和 C#,我想您可以通过找到适当的 ORM 播种方法和提取枚举所有成员的适当方法来解决您的问题。对于问题的第二部分,您需要直接编辑存储枚举的文件。
推荐阅读
- angular - 如何从 authguard.ts 订阅 .ts 文件中的 observable
- windows - 需要管理权限的替换 explorer.exe (Win10)
- python - 合并中的熊猫不返回正确数据集的索引
- flutter - 如何在颤动中忽略 /、+、$ 等字符串作为字符串
- python-3.x - 有什么方法可以在序列模型中对化学微笑数据进行拟合和应用深度学习算法?
- selenium - 使用 Selenium 时,chrome 打开时显示“数据;” 在地址中,虽然 chromedriver 是最新的
- javascript - 为什么 jQuery 函数会自动调用 show() 方法?
- php - simplexml_load_file - 加载 xml 文件失败
- r - 将数据框列转换为向量
- python - 如果 pytest 中的特定测试失败,如何停止在模块中运行其他测试?