Дизайн базы данных, лучший способ сохранить конфигурации для организации
В моем приложении есть такие объекты, как организации и пользователи. Каждый пользователь принадлежит организации. Я хочу реализовать двухфакторную аутентификацию для пользователей на основе настроек организации Ip (я сохраню в ней диапазон ip) и геолокации (я сохраню, 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;
}
1 ответ
Поскольку каждый пользователь принадлежит организации, вы можете создать отношение один-к-одному для пользователя с сущностью организации. Затем создайте связь между организацией и ее настройками (ipConfigs и геолокация) сущностей
@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;
}