ERD dla aplikacji z funkcją lubię to

0

Hej, piszę małą aplikacje powiedzmy że podobną do fejsbuka, generalnie mam problem z systemem lajków, tzn jak zaprojektować tabele w bazie żeby np. przy wyświetlaniu postów były zaznaczone posty które użytkownik już zalajkował wcześniej. Wymyśliłem pewnie rozwiązanie które chyba będzie działać ale zastanawiam się czy można to zrobić jakoś lepiej. W załączniku przesyłam fotkę ERD. Z góry dzięki za sugestie.

erd.png

1

Teoretycznie można by zrobić pomiędzy postami, a użytkownikiem relacje wiele do wielu. To znaczy tabela "Like" zawierałaby tylko UserId i PostId. Te dwa atrybuty tworzyły by klucz główny. Informacja byłaby zachowana. Co w przypadku jeżeli zechcesz w przyszłości wprowadzić przycisk "nie lubię", lub inne ikonki jak to zrobił facebook ? Wówczas taka "Like" zostałaby zamieniona na jakąś relację emocji/ocen jak zwał tak zwał i dodatkowo przechowywałaby klucz obcy do nowej tabeli Typu emocjo (lubię to, nie lubię tego, jest to do kitu etc.)

0

ale tak jak masz teraz to jeden post może być oceniony tylko raz i tylko przez jednego usera

0

Nie za bardzo rozumiem jak to by miało działać. Są dwie sytuacje. Użytkownik może pisać posty i może je lajkować.
Jeżeli usunę tabelę Like to skąd będę wiedział które posty użytkownik zalajkował, a które posty napisał ? Jak stworzę relację wiele do wielu to stworzy mi się taka sama tabela jak mam w sumie czyli ten Like

Wyświetlam listę postów które należą do jakiegoś użytkownika - po UserId ich szukam i wyświetlam. Właściwość ThumbUp mówi mi ile post o danym id ma lajków. Jak mam jeszcze z tej tabeli wyciągnąć informacje który konkretnie post jest zalajkowany przez tego użytkownika ?

Jak mam tabelę Like i użytkownik lajkuje jakiś post to robię coś takiego

 
public ActionLink Like(int postId, int userId)
{

//pseudokod!
	Like like = new Like()
	{
		like.postId = postId,
		like.userId = userId
	};
	Like like = Context.Likes.Add(like);
	

	post.ThumbUp = post.ThumbUp + 1;

Context.Likes.Add(like);
	Context.SaveChanges();
}

@mariano901229 proszę o jakiś komentarz

1 użytkowników online, w tym zalogowanych: 0, gości: 1