我有两个类,User
并且Status
,虽然一个用户会有多个状态,但这自然是Many-to-One
关系,可以很容易地映射到数据库表。
但是,要求还需要用户保持其“当前”状态,即在User
表中,它需要有一个Status
表的外键。这样做的结果是两个表之间有两个相反方向的外键。
一个明显的问题是,一旦将记录插入到两个表中,我就不能删除它们,因为从一个表中删除会违反另一个表的外键。
这种情况下最好的设计是什么?
您是否必须将状态保存在单独的表中?它不能仅由 java 枚举表示,并且 User 将具有 status 属性。像这样的东西:
public enum UserStatus {
X, Y, Z;
}
public class User {
private UserStatus status;
...
}
我希望它对你有帮助!