php symfony notifications uml entity-relationship

php - Live Notifications UML Class Diagram



symfony entity-relationship (1)

Estoy tratando de implementar un sistema de notificación en vivo (como fb, xing, twitter ...). Por lo tanto, creé un diagrama de clase UML antes de construir las entidades. El escaparate es el siguiente:

EDITAR: Pensé en este enfoque y parece que este no es el correcto. Revisemos el siguiente escenario: El usuario U agrega en la imagen del Evento E I un comentario C. Cómo almacenar esto correctamente, quiero decir que EventNotification solo tiene una referencia en el Evento E, pero no en I y C. Por lo tanto, necesitaría crear un La clase "EventImageNotification" también y esto sería un desastre. ¿Sería una solución mejor tener solo una clase de "Notificación" y agregarle un campo de "metadatos", que almacene referencias a todos los campos involucrados?

(Estoy usando un OR-Mapper para implementar relaciones más adelante).

[1] Un usuario puede crear eventos, por ejemplo, "Silvester Party 2015". (Uno a muchos). Este evento tiene un panel de control, donde los usuarios pueden suscribirse para recibir actualizaciones cuando el creador publique algo en ese evento (ManyToMany).

[2] Cuando un usuario publica algo en el panel del evento, los usuarios suscritos deben recibir una Notificación. Por lo tanto, he creado la clase EventNotification. La relación entre el usuario y EventNotification es ManyToMany.

[3] Para mantenerlo limpio, creé una clase AbstractNotification que está relacionada con un tipo de Notificación. Un tipo de notificación es algo como name = "EventPost" y template = "El usuario usuario ha publicado algo nuevo en el evento __event".

[4] La clase abstracta NotificationConnector da campos a la clase de mapeo entre EventNotification y User (UserEventNotification). Los creé para extenderlos fácilmente en el futuro, por ejemplo, un usuario puede crear libros que también activan eventos, etc. Luego necesitaría crear una "BookNotification" y una clase "UserBookNotification" para almacenar las notificaciones de esta nueva entidad.

¿Este enfoque es bueno o está completamente desordenado? Por favor, dime tus ideas sobre este diagrama:

(Las flechas para crear asociaciones deberían haber sido líneas normales, la herramienta que usé simplemente no podía hacer eso).


Sólo algunas observaciones:

  • Las dos clases abstractas parecen ser superfluas ya que solo se usan en un contexto.
  • La conexión del User debe ir a UserEndNotification lugar de a la clase abstracta (que recomiendo eliminar de todos modos).
  • Haría de NotificationType una <<enumeration>>
  • En lugar de usar una relación de owns , usaría una clase de asociación entre User y Event y agregaría una propiedad isOwner y isSubscriber .