Sql-Server
儲存多個地址並選擇一個作為主要/主要地址的正確方法
我正在使用一個小模型,並且正在為一個簡單的問題而苦苦掙扎。
我應該如何儲存地址/郵件/電話列表並選擇一個作為委託人?
我現在想的例子。
地址實體:
- 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 地址屬性