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