Дизайн базы данных, лучший способ сохранить конфигурации для организации

В моем приложении есть такие объекты, как организации и пользователи. Каждый пользователь принадлежит организации. Я хочу реализовать двухфакторную аутентификацию для пользователей на основе настроек организации 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;

}
Другие вопросы по тегам