在我的应用我有这样的组织和用户。每天用户都属于一个组织实体。我想要实现基于组织设置,用户双因素身份验证IP(我将节省IP地址范围),则它和Geolocation(我会保存,的cityName,纬度,经度,和半径)。什么是保存这些设置的最佳方式一个组织。我的想法是创建一个实体TwoFactorSettings和它IpConfigs和Geolcation为不同的实体来存储。
有没有更好的解决方案,或者更通用结构,其可以在这种情况下帮助吗?
@Entity
public class TwoFactorSettings{
private int id;
private String createdDate;
private String createdBy;
@OneToOne
private IpConfigs ipConfigs;
@OneToOne
private Geolcation geoLocation;
@OneToOne
Organisation organisation;
}
由于每个用户都属于一个组织,你可以创建与组织实体的用户一比一的关系。然后创建一个组织及其设置(ipConfigs和Geolocation)之间的关系实体
@Entity
public class User {
@OneToOne(targetEntity=Organization.class)
@JoinColumn(name="organization_id")
private Organization organization;
}
@Entity
public class Organization {
@OneToOne(targetEntity=IpConfigs.class)
@JoinColumn(name="ipconfig_id")
private IpConfigs ipConfigs;
@OneToOne(targetEntity=Geolcation.class)
@JoinColumn(name="geolocation_id")
private Geolcation geoLocation;
}