gpt4 book ai didi

oop - 可选多对多关系的域模型

转载 作者:行者123 更新时间:2023-12-02 01:22:11 24 4
gpt4 key购买 nike

假设我正在对电话号码进行建模。我有一个用于 PhoneNumber 的实体,还有一个用于 Person 的实体。有一个链接表表示 PhoneNumberPerson 之间的链接(如果有)。链接表还有一个 DisplayOrder 字段。

访问我的域模型时,我有几个用于查看Person的用例。

  1. 我可以在没有任何 PhoneNumber 信息的情况下查看它们。
  2. 我可以查看其中的特定电话号码
  3. 我可以查看他们以及他们当前(或过去)的所有电话号码

我正在尝试对 Person 进行建模,不仅用于标准 CRUD 操作,还用于将 PhoneNumbers 分配(取消)分配给 Person.我无法表达两者之间的关系,尤其是在 DisplayOrder 属性方面。我可以想到几种解决方案,但我不确定哪种(如果有的话)最好。

  1. 具有 PersonPhoneNumber 属性的 PhoneNumberPerson 类(最类似于数据库设计)
  2. 继承自 Person 并具有 PhoneNumberPhoneCarryingPerson 类属性(property)。
  3. Person 上的 PhoneNumber 和/或 PhoneNumbers 属性(反之亦然,Person PhoneNumber 上的属性)

从领域模型的角度来看,什么是有意义的建模方法?如何避免错误放置的属性(Person 上的 DisplayOrder)或按条件填充的属性?

最佳答案

选项 1 具有最大的优势,因为这是多对多关系。每个人都会有一个 PhoneNumberPerson 对象列表,每个电话号码都会有一个 PhoneNumberPerson 对象列表,有效地创建两个一对多的关系。

从长远来看,管理两个一对多的关系会更容易。

没有电话的人的 PhoneNumberPerson 列表将为空。继承选项看起来很难维护。

此外,PhoneNumberPerson 类还可以携带此人开始使用手机和停止使用手机的日期等信息,以便轻松判断它是否是当前手机。

关于oop - 可选多对多关系的域模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2760705/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com