Sql-Server

儲存多個地址並選擇一個作為主要/主要地址的正確方法

  • December 6, 2021

我正在使用一個小模型,並且正在為一個簡單的問題而苦苦掙扎。

我應該如何儲存地址/郵件/電話列表並選擇一個作為委託人?

我現在想的例子。

地址實體

  • ID
  • 布拉布拉領域

個人實體

  • ID
  • Bla bla bla 名字和生日等…
  • 地址列表(多對多到地址,因為一個地址可以在家庭成員中共享)
  • 主要地址(FK - 地址)

這是我在 EF Core 中創建的實體:

public class Person
{
   public Person()
   {
       Addresses = new HashSet<Address>();
       PhoneNumbers = new HashSet<PhoneNumber>();
       Emails = new HashSet<Email>();
   }

   [StringLength(100)]
   public string Firstname { get; set; } = null!;

   [StringLength(300)]
   public string Lastname { get; set; } = null!;

   public Gender Gender { get; set; }

   public DateTime BirthDate { get; set; }

   public Guid? MainAddressId { get; set; }

   public Address MainAddress { get; set; } = null!;

   public virtual ICollection<Address> Addresses { get; internal set; }
}

但這對我來說看起來很髒。

我建議你:

地址實體:

  • ID
  • 布拉布拉領域

個人實體:

  • ID
  • Bla bla bla 名字和生日等…

人地址關係:

  • 人員 ID
  • 地址 ID
  • is_principal 地址屬性

引用自:https://dba.stackexchange.com/questions/303553