Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Przedszkole _ [MySQL]Relacje do reakcji na post

Napisany przez: sadistic_son 8.05.2024, 19:14:00

Hej, poradźcie jak powinna wyglądać baza z postami i możliwymi do nich reakcjami użytkowników? Coś jak na WhatsApp że do każdej wiadomości user może zareagować np uśmieszkiem, kciukiem czy inną z kilku emotek.
Czy potrzebuję do tego oddzielnej tabeli o wyglądzie mniej więcej takim?
Id, user_id, post_id, emoticon_type

Jakieś inne pomysły?

Dzięki.

Napisany przez: nospor 9.05.2024, 09:19:56

kiedys bym ci zaproponowal oddzielna tabele. dzis, dodaj poprostu pole do obecnej tabeli: REACTIONS jako pole text, mozesz tam trzymac JSON i updatuj jak ktos doda rekacje. Bo przeciez nie bedzeisz wyszukal kto i jak reagowal na dany post prawda?

Napisany przez: sadistic_son 9.05.2024, 10:01:06

Hmmm, Ale to stwarza możliwości 1000(0) reakcji na jednego posta przez każdego jednego usera, prawda? No i mi zależy żeby można było po najechaniu na konkretną ikonkę zobaczyć kto zareagował tym uśmiechem, a kto tamtym fuck'em smile.gif Tak więc zakładam, że albo oddzielna tabela, albo... no właśnie - coś?

A czemu "dawniej"? Coś się zmieniło w twoim podejściu?

Napisany przez: nospor 9.05.2024, 10:13:20

nie bardzo rozumiem. Jesli chcesz, by dany user mogl na danego posta dac tylko jedna reakcje, to przeciez masz informacje w polu czy user juz dal reakcje czy nie i pozwalsz na dodanie nowej albo nie. Walidacja sie nie zmienia, niezalezni czy masz oddzielna tabele czy oddzielne pole.

Co sie zmienilo? poprostu bardziej praktycznie podchodze do sprawy. Oba rozwiazania maja wady i zalety. Oddzielne pole to masz dodatkowe pole niezaleznie czy ktos dodal CLICK czy nie. oddzielna tabela eleiminuje ten problem, bo rekordy wpadaja tylko gdy byl CLICK. no ale oddzeilna tabela to oddzielna tabela, a dodatkowe pole jakos latwiej ogarniac. Dlatego kiedys bym szedl w oddzeilna tabele, a teraz jest mi obojetne czy oddzielna tabela czy dodatkowa kolumna.

Napisany przez: sadistic_son 9.05.2024, 10:38:27

A no dobra, czyli JSONa polecasz. W sumie userów za dużo nie mam, więc wydajność na tym nie ucierpi.
Dzięki.

Napisany przez: Salvation 9.05.2024, 11:51:42

W osobną tabelę też bym się nie pchał, bo to bez sensu. JSON sobie z tym poradzi na poziomie bazy, żeby trzymać informację, natomiast w kodzie ogarniesz zabezpieczenia.
Pamiętaj tylko o dobrej strukturze JSON-a, bo - być może - będziesz potrzebować się dobić SQL-em do wartości wewnątrz.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)