gpt4 book ai didi

c# - EF Code First - 如何建模?

转载 作者:太空宇宙 更新时间:2023-11-03 20:27:06 25 4
gpt4 key购买 nike

我正在开发一个首先使用实体​​框架代码的网络应用程序 (MVC),我正在尝试弄清楚如何对其建模。我当然可以将 15 个 bool 值添加到一个类(数据库中的位),但这似乎是一种可悲的方式。我目前有一个客户对象,其中包含下图中显示的政策对象。

enter image description here

我希望我的 View 看起来像上面的那样,目前没有计划添加第 6 个,但是构建模型以支持这种可能性很重要。

public class customer{
//some random properties like Id, Name, Owner, Etc.
//I could put 15 bools here for the policies in the image
//I could put a policy object here?
}

最佳答案

这是一个简单、自描述、可伸缩、规范化和可扩展的设计。您可以在不重新编译系统的情况下添加其他策略类型或患者类型。你没有说明你使用的是哪个数据库引擎,所以为了让它在大多数数据库平台上工作,我建议你使用 TPC .

Diagram

患者只是一个人(又名一方)在系统中扮演的角色。您可以拥有其他角色,例如“医生”、“雇员”、“保单持有人”等,每个角色都有自己的数据。重要的是要注意角色是暂时的,这意味着一个角色可以被取消,而这个人在系统中扮演其他角色。

如果可以通过查看 Role 或 Party 的属性来确定“Existing”、“AgeIn”、“NewPatient”,则不需要 PatientType。我添加它是因为不清楚耐心的类型是如何定义的。您很可能只在 Patient 上拥有一个属性来定义它。

一方代表任何法律实体。各方之间的关系通常对企业很重要。因此,当“Sam”(一个人)来找“Doctor”(一个扮演角色的人)时,重要的是要知道她父亲 Bob(一个人)的“政策”会买单。因此,将 Person 映射到不同表中的原因。

PolicyType 定义了政策的真正类型。在您的情况下,您可能有 18 种不同的保单类型,例如 ExistingOriginalMediCare、AgeInOriginalMediCare 等等。这是您可以存储影响策略“规则”的数据的地方。例如,某些类型的保单仅适用于居住在加利福尼亚州的人。我工作的一个系统有数千种策略类型,每种策略类型都有数百种应用程序用来推断业务规则的属性。这允许企业创建新的策略类型和“规则”,而无需重新编译系统和依赖于它的所有内容。

但是,可以通过在保持相同功能的同时去除继承来简化它。这里我们假设除了“患者”之外没有其他“角色”,除了“人”之外没有其他“当事人”。

Simplified Model

也就是说,这实际上取决于数据是否会被其他应用程序重用以及时态数据和关联的真实情况。随意适应。我在设计系统时经常引用这些书:

  1. Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML
  2. Enterprise Model Patterns: Describing the World (UML Version)
  3. The Data Model Resource Book, Volume 3: Universal Patterns for Data Modeling

它们从根本上改变了我看待“数据”的方式。

关于c# - EF Code First - 如何建模?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10037365/

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