我似乎对简单的时间跟踪器有疑问。其设置方式是用户可以跟踪与项目相关的命中时间或自由输入内容。这意味着timetrack对象始终拥有一个用户,但并不总是有一个项目。当我在连接到用户的数据库中创建Timetrack对象,然后将与用户没有关联的项目连接到同一时间跟踪对象时,可能会出现不一致。
解决此问题的最佳方法是什么。我听说过方向联想,但我无法弄清楚如何解决这个问题
类图:
答案 0 :(得分:1)
我不理解您对TimeTrack
的解释,但我认为您的建模问题只能通过添加完整性约束(在UML中称为"不变")来解决时间跟踪用户是时间跟踪项目用户组的成员。
这可以在附加到TimeTrack
类的约束框中正式表示为OCL不变量,其中包含以下表达式:
self.project.users->includes( self.user)
答案 1 :(得分:0)
除了OCL之外,您还可以简单地附加包含以下内容的约束(附加到相关连接器的注释):
{association can only exist if there is a connection between project and user}