Дизайн базы данных, лучший способ сохранить конфигурации для организации - PullRequest
0 голосов
/ 04 февраля 2019

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

0 голосов
/ 04 февраля 2019

Поскольку каждый пользователь принадлежит организации, вы можете создать отношение «один к одному» для пользователя с сущностью организации.Затем создайте связь между организацией и ее настройками (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;

}
...