Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 数据结构问题_Asp.net Mvc 3_Entity Relationship - Fatal编程技术网

Asp.net mvc 3 数据结构问题

Asp.net mvc 3 数据结构问题,asp.net-mvc-3,entity-relationship,Asp.net Mvc 3,Entity Relationship,处理这种情况的最佳方法是什么 我有一个客户模型(表)包含客户的联系信息 我有一个潜在客户模型(表)包含非客户的店铺访客的联系信息 当客户或潜在客户访问商店时,我有一个机会模型(表) 在我看来,我想创造一个新的机会。一个opportunity只能包含一个客户关联或一个潜在客户关联,但不能同时包含两者 在我的opportunity模型中,我目前将customer和prospect作为可空的外部Id和导航属性。我还收集了有关opportunity model的客户和潜在客户信息 这是处理条件关联的正确

处理这种情况的最佳方法是什么

我有一个客户模型(表)包含客户的联系信息 我有一个潜在客户模型(表)包含非客户的店铺访客的联系信息 当客户或潜在客户访问商店时,我有一个机会模型(表)

在我看来,我想创造一个新的机会。一个opportunity只能包含一个客户关联或一个潜在客户关联,但不能同时包含两者

在我的opportunity模型中,我目前将customer和prospect作为可空的外部Id和导航属性。我还收集了有关opportunity model的客户和潜在客户信息

这是处理条件关联的正确方法吗


说到视图,我一直在思考如何建立客户或潜在客户协会?

我是一名计算机科学专业的学生,这是我对数据库关系的理解:

因为你有两种类型的“人”——客户和潜在客户——你可能会有一个名为“人”的表格。在Person表中,两个实体之间的任何公共数据都将被存储(FirstName、LastName、Address1、Address2、City、State、Zip等)

要指示某人是潜在客户,您将有一个潜在客户表,该表将有一个PersonId链接到Person表。您可以在此表中存储有关潜在客户的更多特定属性

这同样适用于客户-您将有一个客户表-该表将有一个PersonId列链接到Person表,以及客户实体的任何特定属性

现在您有了一个数据库,您可以在其中派生其他实体。。。假设一个员工实体>你有你的基本人员实体开始。您的Employee表将链接回该表,并且还具有用于员工特定数据的其他自定义列

这有意义吗

或许我在这件事上完全错了:)。如果我错了,请纠正我,因为我还是个学生

我认为您被卡住了,因为现在“Opportunity”记录上有两个字段(Customer或Prospect),其中一个字段必须为空。使用我提出的模型,您的机会将链接到一个人,您可以在其中定义自定义业务规则,例如。。。员工机会(实际上可能不是个坏主意)

对于您的Opportunity model中的被引用人员,它不会是ICollection(因为您明确表示Opportunity只能有一个人)。它只是一个单独的类,例如:

private virtual Person Person { get; set; }

编辑:如果您不想重新构建整个数据库,您可以使用下拉列表询问这是什么类型的商机(客户或潜在客户)。根据选择,您将在Opportunity表中添加一个外键以链接到您的[客户或潜在客户]。

我是一名计算机科学专业的学生,以下是我对DB关系的理解:

因为你有两种类型的“人”——客户和潜在客户——你可能会有一个名为“人”的表格。在Person表中,两个实体之间的任何公共数据都将被存储(FirstName、LastName、Address1、Address2、City、State、Zip等)

要指示某人是潜在客户,您将有一个潜在客户表,该表将有一个PersonId链接到Person表。您可以在此表中存储有关潜在客户的更多特定属性

这同样适用于客户-您将有一个客户表-该表将有一个PersonId列链接到Person表,以及客户实体的任何特定属性

现在您有了一个数据库,您可以在其中派生其他实体。。。假设一个员工实体>你有你的基本人员实体开始。您的Employee表将链接回该表,并且还具有用于员工特定数据的其他自定义列

这有意义吗

或许我在这件事上完全错了:)。如果我错了,请纠正我,因为我还是个学生

我认为您被卡住了,因为现在“Opportunity”记录上有两个字段(Customer或Prospect),其中一个字段必须为空。使用我提出的模型,您的机会将链接到一个人,您可以在其中定义自定义业务规则,例如。。。员工机会(实际上可能不是个坏主意)

对于您的Opportunity model中的被引用人员,它不会是ICollection(因为您明确表示Opportunity只能有一个人)。它只是一个单独的类,例如:

private virtual Person Person { get; set; }

编辑:如果您不想重新构建整个数据库,您可以使用下拉列表询问这是什么类型的商机(客户或潜在客户)。根据选择,您将在Opportunity表中添加一个外键以链接到您的[客户或潜在客户]。

因此,客户对个人和潜在客户对个人都将是一对一的关系?让我想想,我自己也很困惑。是一个人,将始终只链接到一个潜在客户/客户。所以这是一对一。现在,如果您将一个潜在客户转换为一个客户,那么此人将链接到两个表,但这没关系,因为它们仍然是1对1。那么,在每个派生表中被异化的人是否可以为空?如果不是,则每个关联都是必需的,对吗?谢谢,它不应该是空的,每个人都源于人,所以它是必需的。所以客户对人和潜在客户对人都是一对一的关系吗?让我想想,我自己也很困惑。是一个人,将始终只链接到一个潜在客户/客户。所以这是一对一。现在,如果您将一个潜在客户转换为一个客户,那么此人将链接到两个表,但这没关系,因为它们仍然是1对1。那么,在每个派生表中被异化的人是否可以为空?如果不是,则每个关联都是必需的,对吗?谢谢,它不应该是空的,每个人都是从person派生的,所以它是必需的。