Symfony - model wysłanej wiadomości

Symfony - model wysłanej wiadomości
PE
  • Rejestracja:ponad 7 lat
  • Ostatnio:prawie 3 lata
  • Postów:111
0

Dobry,
zacząłem przygodę z Symfony. Piszę sobie systemik, którego częścią ma być umożliwienie wysłania przez usera wiadomości wg szablonu do innych userów. Zastanawia mnie, jak poprawnie zrealizować model wysłanej wiadomości?
Nie będzie to zwykła relacja wiele do wielu, bo do wysłanej wiadomości chcę dopisać jakieś dodatkowe bzdety typu data wysłania itp.
I teraz pytanie,
czy to powinno być zrealizowane tak, że tworzę model w stylu SentMessace, który będzie przechowywał wiadomość, użytkownika itp itd i przy procesie wysyłania to uzupełnić czy lepiej jakoś inaczej to zrealizować?
Sama wiadomość to raczej tylko szablon więc chyba nie ma sensu podpinania do niej tablicy wysłanych?

Patryk27
Relacja jest synonimem słowa tabela (patrz: https://pl.wikipedia.org/wiki/Model_relacyjny). Połączenie dwóch tabel to złączenie.
Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
0

Chcesz mieć szablony wiadomości na zasadzie Cześć, {imie}! Cośtam innego to {costam}. (tj. ze zmiennymi) czy raczej tak, aby użytkownicy mogli modyfikować ręcznie samą treść (nie tylko zmienne)?


PE
  • Rejestracja:ponad 7 lat
  • Ostatnio:prawie 3 lata
  • Postów:111
0

Każdy user może stworzyć sobie jakiś szablon zawierający zmienne, które przy wysyłaniu wiadomości będą odpowiednio konwertowane.

Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
1

No to sugerowałbym taki układ:

Kopiuj
message_templates:
  id: int
  template: string

messages:
  id: int
  sender_id: int
  recipient_id: int
  template_id: int

message_variables:
  id: int
  message_id: int
  name: string
  value: string

Czyli osobno trzymane szablony, wiadomości oraz wypełnienia zmiennych wiadomości.

Inną opcją, prostszą w implementacji, mogłoby być przykładowo:

Kopiuj
message_templates:
  id: int
  template: string

messages:
  id: int
  sender_id: int
  recipient_id: int
  template_id: int
  template_variables: json

W tym wypadku tracimy relację message_variables na rzecz pola messages.template_variables, co jest prostsze w implementacji, ponieważ nie wymaga tworzenia dodatkowego modelu oraz tabeli.


edytowany 1x, ostatnio: Patryk27
PE
  • Rejestracja:ponad 7 lat
  • Ostatnio:prawie 3 lata
  • Postów:111
0

Czyli jest mniej więcej tak jak sobie na samym początku kombinowałem. Dzięki! :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.