我正在尝试实现一个实时通知系统(如fb,xing,twitter ..)。因此,我在构建实体之前创建了一个UML类图。展示如下:
编辑:我想到了这种方法,似乎这不是正确的方法。让我们检查下面的情况:用户U在事件E的图像中添加了注释C.如何正确存储,我的意思是EventNotification仅对事件E有引用,但不在I和C上引用因此我需要创建一个" EventImageNotification"上课也是一团糟。如果只有一个" Notification"它会是一个更好的解决方案吗?分类并添加一个"元数据"字段到它,它存储对所有相关字段的引用?
(我以后使用OR-Mapper来实现关系)。
[1]一个用户可以创建事件,例如"西尔维斯特党2015"。 (一对多)。 此事件有一个仪表板,当创建者在该事件上发布内容时,用户可以订阅接收更新(ManyToMany)。
[2]当用户在事件的仪表板上发布内容时,订阅的用户应该收到通知。因此,我创建了EventNotification类。用户和EventNotification之间的关系是ManyToMany。
[3]为了保持清洁,我创建了一个与Notification类型相关的AbstractNotification类。通知类型类似于name =" EventPost"和模板="用户用户在事件__event"上发布了新内容。
[4]抽象类NotificationConnector为EventNotification和User(UserEventNotification)之间的映射类提供字段。我创建它们以便将来轻松扩展它,例如用户可以创建也触发事件等的书籍。然后我需要创建一个" BookNotification"和一个" UserBookNotification"用于存储此新实体的通知的类。
这种做法是好的还是完全搞砸了?请告诉我您对此图表的看法:
(构建关联的箭头应该是正常的线,我使用的工具不能这样做。)
答案 0 :(得分:0)
只是一些观察:
has
的{{1}}连接应该转到User
,而不是抽象类(我建议放弃)。UserEndNotification
NotificationType
<<enumeration>>
关系,我会使用owns
和User
之间的关联类,并添加Event
和isOwner
属性。