- 党的模式背后的核心原则和动力是什么?
就我使用它而言,它主要是关于代码重用和灵活性。我们之前在来宾/用户/管理员模型中使用过它,当您需要将用户从一个组移动到另一个组时,它确实证明了它的价值。将此扩展到让组织和公司代表其下的用户,它实际上提供了一种抽象形式,这种抽象形式在 SQL 中并不是特别固有的。
- 它规定你对数据模型做什么?(我上面的那一点水平很高,在某些方面很可能不正确。我一直在使用它的项目中,但我正在与一个专注于其他问题的单独团队合作)。
您在上面的部分中是非常正确的,尽管它需要更多细节。您可以想象这样一种情况,数据库中的一个实体(称为一方)外包给另一方,而另一方可能反过来分包工作。一方可能是雇员、承包商或公司,是一方的所有子类。据我了解,您将有一个 Party 表,然后是每个子类的更具体的表,然后可以进一步细分(Party -> Person -> Contractor)。
- 你的经历让你有什么感受?你用过吗,如果用过,你会再用吗?有什么好处和坏处?
如果您需要灵活地向系统添加新类型并在您一开始没有预料到的类型和架构之间创建关系(用户移动到一个新的水平,公司雇用其他公司等),它有它的好处。它还为您提供了运行单个查询并为多种类型的各方(公司、员工、承包商)检索数据的好处。另一方面,您正在添加额外的抽象层以获取您实际需要的数据,并且在查询特定类型时增加了数据库上的负载(或至少连接数)。如果您的抽象太过分,您可能需要运行多个查询来检索数据,因为复杂性将开始对可读性和数据库负载有害。
- 派对模型是否限制了您对 ORM 的选择?例如,您是否必须消除某些 ORM,因为它们不允许在您的域对象和您的物理数据模型之间有足够的“抽象层”?
这是一个我承认有点薄弱的领域,但我发现在应用程序层中使用视图和镜像抽象并没有造成太大的问题。当我想直接读取数据源时,对我来说真正的问题一直是“数据 X 在哪里”(对于系统上的新开发人员来说,这也不总是直观的)。