对人员/公司角色进行建模



我一直在从事一个处理家庭维护服务工作的项目,但我很难对不同的人和公司所扮演的角色进行建模。 如果很重要,系统是使用zendFramework编写的,mySql作为数据存储。

我尽力解释,但我并不精通数据建模的语言。
该系统的最终用户是一家维护公司,我将在以下示例中称为HammerTime。这是我到目前为止所拥有的:

WorkOrderRequests来自两个主要来源:来源1:居民>>请求工作订单>>物业管理公司>>请求工作订单>>锤子时间

来源2:房主>>请求工作订单>>锤子时间

我认为所有这些实体都是客户,但只有物业管理公司房主是"直接"客户,他们将收到发票。 如果居民拥有他们居住的房产,他们也可以成为房主。此外,在此基础上添加另一层业务逻辑,所有居民都属于物业,并且居民对物业管理公司的所有请求都由物业经理调解

WorkOrderRequests进入HammerTime时,它们被存储为WorkOrders,然后以几种不同的方式处理。

处理1:锤子时间>>分配工单>>员工

处理2:锤子时间>>合同外工单>>服务供应商

我认为这些实体是工人,它们似乎更容易建模。

问题是我希望能够根据其角色类型向系统授予对所有这些实体的访问权限。 在我看来,我想将它们全部归入一个成员抽象超类下,该超类可以由两个更抽象的类 PersonCompany 子类化。然后,个人公司可以进一步被更具体的类(如员工物业管理公司等)进行子类化。

财产适合在哪里,因为它不是个人或公司。我想也许会是会员

有一种感觉,我完全错过了一些东西,因为有些东西感觉不对劲。 因此,任何想法或指示将不胜感激。

我根本不懂 php 或 Zend,但你可能想看看"Party-Role"模式。 (只是谷歌,参见例如(1)(2)(3))。

在你的场景中,个人和组织是党的子类型。 员工、服务供应商、居民等都是角色的子类型。 党与角色之间有很多:很多关系。您可以根据需要在角色子类型之间定义关系。然后,分配权限应该变得容易;每个参与方都会获得分配给它的每个角色的权限。

呵。

最新更新