Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.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
您如何在UML Java或C#甚至DB中建模客户可以是自然人,也可以是公司,并且公司有员工&;承包商_C#_Java_Database Design_Model_Uml - Fatal编程技术网

您如何在UML Java或C#甚至DB中建模客户可以是自然人,也可以是公司,并且公司有员工&;承包商

您如何在UML Java或C#甚至DB中建模客户可以是自然人,也可以是公司,并且公司有员工&;承包商,c#,java,database-design,model,uml,C#,Java,Database Design,Model,Uml,我能找到的所有教程都是用玩具uml用例处理的,比如这里的一个 我看不出您如何在UML用例中对此进行建模: 客户可以是自然人,也可以是公司,公司的员工本身就是自然人。公司也有一些人作为承包商为他们工作,他们是自然人,但不是客户 有没有人有什么好主意,比如在yuml用例中编写这个模型 似乎没有人知道UML用例,所以让我们说,即使是类图,甚至是Java或C#类图,甚至是数据库设计:) 我在下面的模型中看到的问题是,此人是客户,因此所有员工也都是客户,这是错误的: 客户可以是自然人,也可以是公司,公司

我能找到的所有教程都是用玩具uml用例处理的,比如这里的一个

我看不出您如何在UML用例中对此进行建模:

客户可以是自然人,也可以是公司,公司的员工本身就是自然人。公司也有一些人作为承包商为他们工作,他们是自然人,但不是客户

有没有人有什么好主意,比如在yuml用例中编写这个模型

似乎没有人知道UML用例,所以让我们说,即使是类图,甚至是Java或C#类图,甚至是数据库设计:)

我在下面的模型中看到的问题是,此人是客户,因此所有员工也都是客户,这是错误的:

客户可以是自然人,也可以是公司,公司的员工本身就是自然人

您不能用UML用例图对此进行建模,因为这不是一个用例。一个用例听起来像是Compary可以雇佣员工,一个人可以从公司订购产品,等等

但是,您可以使用以下UML类图对此进行建模:

更新:


上面的类图并不意味着一家公司的员工也必须是同一家公司的客户。它只是说明一个人可能是某家公司的客户或该公司的雇员,并同时允许这两种情况

考虑下面的对象图,它显示了上述类的一些实例,并且就上面的类图而言是完全合法的:

客户可以是自然人,也可以是公司,公司的员工本身就是自然人

您不能用UML用例图对此进行建模,因为这不是一个用例。一个用例听起来像是Compary可以雇佣员工,一个人可以从公司订购产品,等等

但是,您可以使用以下UML类图对此进行建模:

更新:


上面的类图并不意味着一家公司的员工也必须是同一家公司的客户。它只是说明一个人可能是某家公司的客户或该公司的雇员,并同时允许这两种情况

考虑下面的对象图,它显示了上述类的一些实例,并且就上面的类图而言是完全合法的:


以下类图满足您的需要:

实际上,您使用的是两个域:第一个域是公司的层次结构:公司的员工和承包商都是个人;第二个域是客户域,可以是公司和客户。所以在这个图中,你有一个
,可以是
承包商
员工
客户
,也可以是
客户
,还有一个
客户公司
,它既是
客户
,又是
公司

请注意,我创建了
CustomerCompany
,它继承自
Company
,而不是使
Company
继承自
Customer
,因为我假设并非所有公司都是客户

我对所有关系都使用了继承,但如果不需要多重继承,可以使用接口来实现

此图的代码为:

[Company]++-0..*>[Employee]
[Company]++-0..*>[Contractor]
[Person]^-[Employee]
[Person]^-[Contractor]
[Customer]^-[CustomerCompany]
[Company]^-[CustomerCompany]
[Customer]^-[CustomerPerson]
[Person]^-[CustomerPerson]

以下类图满足您的需要:

实际上,您使用的是两个域:第一个域是公司的层次结构:公司的员工和承包商都是个人;第二个域是客户域,可以是公司和客户。所以在这个图中,你有一个
,可以是
承包商
员工
客户
,也可以是
客户
,还有一个
客户公司
,它既是
客户
,又是
公司

请注意,我创建了
CustomerCompany
,它继承自
Company
,而不是使
Company
继承自
Customer
,因为我假设并非所有公司都是客户

我对所有关系都使用了继承,但如果不需要多重继承,可以使用接口来实现

此图的代码为:

[Company]++-0..*>[Employee]
[Company]++-0..*>[Contractor]
[Person]^-[Employee]
[Person]^-[Contractor]
[Customer]^-[CustomerCompany]
[Company]^-[CustomerCompany]
[Customer]^-[CustomerPerson]
[Person]^-[CustomerPerson]

你想做什么,一个用例?序列图?类图?正如我所说的UML用例,但如果不是类图,你就会误解类图。该类图没有指定特定员工必须是同一公司的客户。类图指定类与实例之间可能存在的关系。可能有一些
实例是特定
公司的员工
,可能有一些
是该
公司
的客户,也可能有一些既是员工又是客户。您想做什么,一个用例?序列图?类图?正如我所说的UML用例,但如果不是类图,你就会误解类图。该类图没有指定特定员工必须是同一公司的客户。类图指定类与实例之间可能存在的关系。可能有一些
实例是特定
公司的员工
,也可能有一些
是该
公司的客户
,也可能有一些人既是员工又是客户。谢谢大家查看。顺便说一句,在UML用例中,客户、个人和公司都是角色。我在您的模型中看到的问题是,个人是客户,所以所有员工也都是客户,这是错误的