this question 的许多答案建议不要使用序数,而是在将枚举映射到数据库中的表时只使用一个包含枚举值的列。
如果我要在多对多关系中使用这个枚举映射表,这仍然是一种安全的方法吗?
更详细地说,我有一个表 Car
和一个表 Extras
,我将它们建模为枚举。然后我有一个表 cars_extras
,它包含 nxn 关系并具有三列:id
、car_id
和 extra_id
,但我不确定这是否是个好主意。
最佳答案
您在两个地方强制执行枚举:在您的代码中作为枚举,在数据库中作为外键。
这将确保如果有人直接在数据库中修改数据,他们不会不小心拼错一个枚举值,而且也使程序员更容易看到有效值。
我见过有人使用这种方法,然后还在启动时添加一个验证步骤,以确保数据库中的枚举表具有与枚举类相同的值。如果它们不匹配,它会因错误而停止。
关于java - 多对多关系中没有序号键的枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34230706/