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?
- Rejestracja:ponad 7 lat
- Ostatnio:prawie 3 lata
- Postów:111
0

Patryk27
Relacja jest synonimem słowa tabela (patrz: https://pl.wikipedia.org/wiki/Model_relacyjny). Połączenie dwóch tabel to złączenie.
- 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.
1
No to sugerowałbym taki układ:
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:
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
- 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.