java - 多对多关系中没有序号键的枚举

标签 java database enums

this question 的许多答案建议不要使用序数,而是在将枚举映射到数据库中的表时只使用一个包含枚举值的列。

如果我要在多对多关系中使用这个枚举映射表,这仍然是一种安全的方法吗?

更详细地说,我有一个表 Car 和一个表 Extras,我将它们建模为枚举。然后我有一个表 cars_extras,它包含 nxn 关系并具有三列:idcar_idextra_id ,但我不确定这是否是个好主意。

最佳答案

您在两个地方强制执行枚举:在您的代码中作为枚举,在数据库中作为外键。

这将确保如果有人直接在数据库中修改数据,他们不会不小心拼错一个枚举值,而且也使程序员更容易看到有效值。

我见过有人使用这种方法,然后还在启动时添加一个验证步骤,以确保数据库中的枚举表具有与枚举类相同的值。如果它们不匹配,它会因错误而停止。

关于java - 多对多关系中没有序号键的枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34230706/

相关文章:

java - 如何确定特定时间是否已经过去 48 小时?

java - 当你有 .jar 时如何写入文件

java - 为枚举实现 MessageBodyReader

c# - 确定类型是否为枚举类型的通用列表

具有多个值的枚举中的 java.lang.ExceptionInInitializerError

java - "blocks[i][j].isColorBox() ? pieceColor : backgroundColor"的长版本是什么?

java - JAVA的流什么时候会出现EOFException

node.js - 如何在 MongoDB find() 中显示建议

python - 如何在 google app engine 上用 python 创建一个独特的属性?

Mysql 安装程序显示错误 : Memoy could not be written