数据库设计,为组织保存配置的最佳方法

时间:2019-02-04 15:19:58

标签: database jpa entity-relationship-model

在我的应用程序中,我有诸如组织和用户之类的实体。每个用户都属于一个组织。我想基于组织设置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 :(得分:0)

由于每个用户都属于组织,因此您可以为具有组织实体的用户创建一对一关系。然后在组织及其设置(ipConfig和地理位置)实体之间创建关系

 @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;

}