一个属性可以用于 ALFA 中的多个类别吗?
Can an attribute be used for several categories in ALFA?
A doctor
可以属于 subjectCat
(正试图获得访问权限的用户)或 resourceCat
(主体正试图访问的体检转诊医师) ).
在我看来,为了支持这两种情况,我需要为每个类别单独定义 doctor
:
namespace subject {
namespace doctor {
attribute id {
category = subjectCat
id = "id"
type = string
}
attribute lastname {
category = subjectCat
id = "lastname"
type = string
}
//and 20 more attributes...
}
}
namespace resource {
namespace doctor {
attribute id {
category = resourceCat //this line is the only difference
id = "id"
type = string
}
attribute lastname {
category = resourceCat //this line is the only difference
id = "lastname"
type = string
}
//and 20 more attributes...
}
}
这很麻烦,而且有很多冗余。我能做些什么来避免这种情况吗?
你是对的。您将重新定义属性。在某种程度上,您正在使用信息模型中的相同对象(例如医生),但在一种情况下,该对象(医生)充当主题。另一方面,它充当您正在保护的对象,例如
- 医生可以查看分配给他们的患者的医疗记录。
- HR可以查看医生的工资。
是的,这意味着您必须在多个类别中定义属性本身。只要命名空间和名称的组合保持唯一,您仍然可以利用命名空间结构。
你可以做 acme.user.staff.doctor
和属性 name
。然后你可以做 acme.object.doctor
和属性 name
.
请注意,Eclipse 也可以让您自动完成:
A doctor
可以属于 subjectCat
(正试图获得访问权限的用户)或 resourceCat
(主体正试图访问的体检转诊医师) ).
在我看来,为了支持这两种情况,我需要为每个类别单独定义 doctor
:
namespace subject {
namespace doctor {
attribute id {
category = subjectCat
id = "id"
type = string
}
attribute lastname {
category = subjectCat
id = "lastname"
type = string
}
//and 20 more attributes...
}
}
namespace resource {
namespace doctor {
attribute id {
category = resourceCat //this line is the only difference
id = "id"
type = string
}
attribute lastname {
category = resourceCat //this line is the only difference
id = "lastname"
type = string
}
//and 20 more attributes...
}
}
这很麻烦,而且有很多冗余。我能做些什么来避免这种情况吗?
你是对的。您将重新定义属性。在某种程度上,您正在使用信息模型中的相同对象(例如医生),但在一种情况下,该对象(医生)充当主题。另一方面,它充当您正在保护的对象,例如
- 医生可以查看分配给他们的患者的医疗记录。
- HR可以查看医生的工资。
是的,这意味着您必须在多个类别中定义属性本身。只要命名空间和名称的组合保持唯一,您仍然可以利用命名空间结构。
你可以做 acme.user.staff.doctor
和属性 name
。然后你可以做 acme.object.doctor
和属性 name
.
请注意,Eclipse 也可以让您自动完成: